Angularjs 从控制器获取指令的值
我是AngularJs的新手,我正在尝试从我的控制器访问处于活动状态的“数据页”的值(寻呼机由第三方插件生成) 示例:在下面的示例中,我试图得到的是值:3Angularjs 从控制器获取指令的值,angularjs,Angularjs,我是AngularJs的新手,我正在尝试从我的控制器访问处于活动状态的“数据页”的值(寻呼机由第三方插件生成) 示例:在下面的示例中,我试图得到的是值:3 <ul class="pagination pagination-sm"> <li class="footable-page-arrow"> <a data-page="first" href="#first">«</a> </li> <
<ul class="pagination pagination-sm">
<li class="footable-page-arrow">
<a data-page="first" href="#first">«</a>
</li>
<li class="footable-page active">
<a data-page="3" href="#">4</a>
</li>
<li class="footable-page">
<a data-page="0" href="#">1</a>
</li>
...
...
</ul>
我在控制器中添加了一个警报,只是为了知道里面有什么:
$scope.fooFunc= function(){
alert($scope.page); /*I supposed the value is now
avelaible in the controller scope, still get **undefined** */
}
这是非常不规则的,因为控制器不应该关心DOM。在许多事情中,此规则有助于保持控制器的可测试性 一旦你开始关注DOM,你就会进入Angular的 使用指令方法,我们可以通过以下方式将
数据页
属性分配给我们的控制器范围
:
app.directive('page', function pageDirective() {
return {
restrict: 'A',
link: function link(scope, element, attributes) {
scope.page = attributes.page;
}
}
});
由于范围
将与控制器的范围隐式相同,因此对指令内范围
变量执行的任何操作都将反映在控制器上–只要指令在控制器范围内–ng控制器
通过指定
scope:true
,您将为指令创建一个新的作用域,该指令可以从原型链访问控制器的作用域,或者使用scope.$parent
。我们还有作用域:{}
,它创建了一个孤立的作用域,是一个完全不同的领域。这是非常不规则的,因为控制器不应该关心DOM。在许多事情中,此规则有助于保持控制器的可测试性
一旦你开始关注DOM,你就会进入Angular的
使用指令方法,我们可以通过以下方式将数据页
属性分配给我们的控制器范围
:
app.directive('page', function pageDirective() {
return {
restrict: 'A',
link: function link(scope, element, attributes) {
scope.page = attributes.page;
}
}
});
由于范围
将与控制器的范围隐式相同,因此对指令内范围
变量执行的任何操作都将反映在控制器上–只要指令在控制器范围内–ng控制器
通过指定
scope:true
,您将为指令创建一个新的作用域,该指令可以从原型链访问控制器的作用域,或者使用scope.$parent
。我们还有作用域:{}
,它创建了一个孤立的作用域,是一个完全不同的领域。这是非常不规则的,因为控制器不应该关心DOM。在许多事情中,此规则有助于保持控制器的可测试性
一旦你开始关注DOM,你就会进入Angular的
使用指令方法,我们可以通过以下方式将数据页
属性分配给我们的控制器范围
:
app.directive('page', function pageDirective() {
return {
restrict: 'A',
link: function link(scope, element, attributes) {
scope.page = attributes.page;
}
}
});
由于范围
将与控制器的范围隐式相同,因此对指令内范围
变量执行的任何操作都将反映在控制器上–只要指令在控制器范围内–ng控制器
通过指定
scope:true
,您将为指令创建一个新的作用域,该指令可以从原型链访问控制器的作用域,或者使用scope.$parent
。我们还有作用域:{}
,它创建了一个孤立的作用域,是一个完全不同的领域。这是非常不规则的,因为控制器不应该关心DOM。在许多事情中,此规则有助于保持控制器的可测试性
一旦你开始关注DOM,你就会进入Angular的
使用指令方法,我们可以通过以下方式将数据页
属性分配给我们的控制器范围
:
app.directive('page', function pageDirective() {
return {
restrict: 'A',
link: function link(scope, element, attributes) {
scope.page = attributes.page;
}
}
});
由于范围
将与控制器的范围隐式相同,因此对指令内范围
变量执行的任何操作都将反映在控制器上–只要指令在控制器范围内–ng控制器
通过指定
scope:true
,您将为指令创建一个新的作用域,该指令可以从原型链访问控制器的作用域,或者使用scope.$parent
。我们还有作用域:{}
,它创建了一个独立的作用域,是一个完全不同的领域。我建议您始终使用服务/工厂在控制器和指令之间共享数据,并在两侧注入数据
app.factory('SharedService', function() {
return {
sharedObject: {
value: '',
value2: ''
}
};
});
app.controller('FirstCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.directive('myDirective',['SharedService', function(SharedService){
return{
restrict: 'E',
link: function(scope){
scope.model = SharedService.sharedObject;
},
template: '<div><input type="text" ng-model="model.value"/></div>'
}
}]);
app.factory('SharedService',function(){
返回{
共享对象:{
值:“”,
值2:“”
}
};
});
app.controller('FirstCtrl',函数($scope,SharedService){
$scope.model=SharedService.sharedObject;
});
应用程序指令('myDirective',['SharedService',函数(SharedService){
返回{
限制:'E',
链接:功能(范围){
scope.model=SharedService.sharedObject;
},
模板:“”
}
}]);
下面是一个plunkr,展示了如何实现:
我建议您始终使用服务/工厂在控制器和指令之间共享数据,并在两侧注入数据
app.factory('SharedService', function() {
return {
sharedObject: {
value: '',
value2: ''
}
};
});
app.controller('FirstCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.directive('myDirective',['SharedService', function(SharedService){
return{
restrict: 'E',
link: function(scope){
scope.model = SharedService.sharedObject;
},
template: '<div><input type="text" ng-model="model.value"/></div>'
}
}]);
app.factory('SharedService',function(){
返回{
共享对象:{
值:“”,
值2:“”
}
};
});
app.controller('FirstCtrl',函数($scope,SharedService){
$scope.model=SharedService.sharedObject;
});
应用程序指令('myDirective',['SharedService',函数(SharedService){
返回{
限制:'E',
链接:功能(范围){
scope.model=SharedService.sharedObject;
},
模板:“”
}
}]);
下面是一个plunkr,展示了如何实现:
我建议您始终使用服务/工厂在控制器和指令之间共享数据,并在两侧注入数据
app.factory('SharedService', function() {
return {
sharedObject: {
value: '',
value2: ''
}
};
});
app.controller('FirstCtrl', function($scope, SharedService) {
$scope.model = SharedService.sharedObject;
});
app.directive('myDirective',['SharedService', function(SharedService){
return{
restrict: 'E',
link: function(scope){
scope.model = SharedService.sharedObject;
},
template: '<div><input type="text" ng-model="model.value"/></div>'
}
}]);
app.factory('SharedService',function(){
返回{
共享对象:{
值:“”,
值2:“”
}
};
});
app.con