首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$state.go不工作AngularJS?

$state.go不工作AngularJS?
EN

Stack Overflow用户
提问于 2016-03-03 07:38:47
回答 2查看 830关注 0票数 0

如何从AngularJS中的另一个控制器调用ui视图

这是我的样本程序。实际上,在这里我使用的是嵌套的ui视图。问题是,当我一开始单击submit按钮时,它可以正常工作,并在SampleController中显示一个警报。

但是我又一次点击了它,没有刷新页面,它不去SampleController,为什么?

当我点击提交按钮时,我需要去那个控制器。

我的code.Please也有错误吗?检查一下我的stateProvider。我是AngularJS的新起动器

请纠正我谢谢..。

代码语言:javascript
复制
var app=angular.module('TestApp', ['angular.filter','ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
        .state('category', {
        views : {   
            "body" : {
                url : '/category',
                templateUrl : 'category.html',
                controller : 'TestController'
            }
        }       
    })
    .state('category.subcategory', {
        url : '/subcategory',
        views : {                              
            "subbody@category" : {
                templateUrl : 'sample.html',
                controller : 'SampleController'              
            }
        }
    })
});

app.controller('MainController', MainController);
function MainController($scope,$state) {
    alert("This is MainController") 
    $scope.getCategory=function(){
        $state.go('category');
    }
}

app.controller('TestController', TestController);
function TestController($scope, $state){    
    $scope.getData=function() {
        alert("Call to Sample Controller")
        $state.go('.subcategory');
    }
}

app.controller('SampleController', SampleController);
function SampleController($scope,$state) {
    alert("This is SampleController")
}

这是我的示例HTML文件

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html ng-app="TestApp">

  <head>
    <link rel="stylesheet">
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular-route.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.js"></script>
        <script src="angular-ui-router.js"></script>    
        <script src="script.js"></script>
  </head>
    <body ng-controller="MainController">
        <a href="#" ng-click="getCategory()">Click to Category</a>
        <div ui-view="body">
            <div ui-view="subbody"></div>
        </div>  
    </body>
</html>

category.html

代码语言:javascript
复制
 <div>      
   <input type="button" name="button" id="button" value="Submit" ng-click="getData()" />
   <div ui-view="subbody"></div>
 </div>

sample.html

代码语言:javascript
复制
 <div>
    Sample Controller
</div>

当我点击提交按钮时,我需要点击SampleController

在我的项目“提交按钮部分”中,包含两个选择框、类别和子类别,在该目录和子类别上,我需要显示仅由.Based完成的SampleController.So刷新的详细信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-03 08:00:28

问题是您的视图没有正确嵌套,您的声明也有一点错误,下面是一个工作装置

首先,您忘记将subbody ui视图放在category.html模板中:

代码语言:javascript
复制
<div ui-view="subbody"></div>

由于category.subcategorycategory的子状态,所以不必在视图声明中使用@

票数 0
EN

Stack Overflow用户

发布于 2016-03-03 07:56:59

首先,确认浏览器地址栏中的“localhost/品类/子类别”是否有效,然后使用$state.go('category.subcategory')。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35765945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档