如何从AngularJS中的另一个控制器调用ui视图
这是我的样本程序。实际上,在这里我使用的是嵌套的ui视图。问题是,当我一开始单击submit按钮时,它可以正常工作,并在SampleController中显示一个警报。
但是我又一次点击了它,没有刷新页面,它不去SampleController,为什么?
当我点击提交按钮时,我需要去那个控制器。
我的code.Please也有错误吗?检查一下我的stateProvider。我是AngularJS的新起动器
请纠正我谢谢..。
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
<!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
<div>
<input type="button" name="button" id="button" value="Submit" ng-click="getData()" />
<div ui-view="subbody"></div>
</div>sample.html
<div>
Sample Controller
</div>当我点击提交按钮时,我需要点击SampleController
在我的项目“提交按钮部分”中,包含两个选择框、类别和子类别,在该目录和子类别上,我需要显示仅由.Based完成的SampleController.So刷新的详细信息。
发布于 2016-03-03 08:00:28
问题是您的视图没有正确嵌套,您的声明也有一点错误,下面是一个工作装置。
首先,您忘记将subbody ui视图放在category.html模板中:
<div ui-view="subbody"></div>由于category.subcategory是category的子状态,所以不必在视图声明中使用@
发布于 2016-03-03 07:56:59
首先,确认浏览器地址栏中的“localhost/品类/子类别”是否有效,然后使用$state.go('category.subcategory')。
https://stackoverflow.com/questions/35765945
复制相似问题