Angularjs 多个控制器作为一个指令的语法?
我有如下的路由和控制器Angularjs 多个控制器作为一个指令的语法?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有如下的路由和控制器 .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/', { templateUrl : '/data/user.html', controller : 'UserController as usr' }) .when('/add-schema', { templateUrl : '/data/grou
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {
templateUrl : '/data/user.html',
controller : 'UserController as usr'
})
.when('/add-schema', {
templateUrl : '/data/group.html',
controller : 'GroupController as grp'
})
}])
/*Note That I dont want to use $scope*/
.controller('UserController', function($http) {
var vm = this;
vm.total_rows = 90;
})
.controller('GroupController', function($http) {
var vm = this;
vm.total_rows = 60;
});
我只想对所有页面使用一个分页指令,像这样的smth
.directive('datasPagination', function() {
return {
restrict: 'E',
template: '<ul class="pagination"><li>{{total_rows}}</li></ul>'
}
});
.directive('datasPagination',function(){
返回{
限制:'E',
模板:'- {{total_rows}}
'
}
});
考虑到我使用控制器作为具有不同别名的语法,并且不使用$scope,如何在指令中获取{total_rows}}。在上面,我使用“usr”和“grp”作为别名
关于尝试隔离指令范围,这在您想要构建可重用组件时非常有用
APP.directive('datasPagination',function(){
返回{
限制:'E',
范围:{
行:“=”
},
模板:'- {{rows}}
'
}
});代码>
您是否尝试使用隔离作用域并通过属性传递值?否则,您必须使用范围…在您的指令中添加require:'ngController'和链接函数中的第四个参数将为您提供控制器实例如果我为每个控制器使用不同的别名会怎么样?上面,我使用“usr”和“grp”作为别名是的,但是,您可以在控制器scop中共享到隔离作用域的变量,因此,不必关心它的命名方式。。。只需使用一次usr.total\u行,然后使用grp.total\u行。。。在您的指令中,此数据始终称为Rowstory…还有一件事…指令中的ng aclick操作如何?smth like:ng click=“getDataPagination(page)”当您使用隔离作用域时,控制器的作用域不会与指令共享,因此,如果此函数在隔离作用域之外定义,您将无法访问它。。。您可以使用属性共享它,就像我对rows变量所做的那样。。。