Angularjs 来自不同指令的角度变量操作
我有点挣扎与无限卷轴的角度。我有一个对象数组,所有项目都存储在其中。此对象是指令控制器的一部分 现在,当我尝试实现无限滚动时,我使用单独的指令来计算偏移量。我想从定义对象数组的另一个指令访问这个滚动指令变量 我该怎么做?到这里最简单的方法是什么?我搜索了一周,找不到任何足够简单的方法来实现我的解决方案。Angularjs 来自不同指令的角度变量操作,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有点挣扎与无限卷轴的角度。我有一个对象数组,所有项目都存储在其中。此对象是指令控制器的一部分 现在,当我尝试实现无限滚动时,我使用单独的指令来计算偏移量。我想从定义对象数组的另一个指令访问这个滚动指令变量 我该怎么做?到这里最简单的方法是什么?我搜索了一周,找不到任何足够简单的方法来实现我的解决方案。 谢谢您可以使用指令的require属性获取另一个指令控制器的$scope,或者使用指令的父控制器传递共享值。下面是一个使用require的示例 下一个示例的时间可能不是您想要的。它们共享同一个变
谢谢您可以使用指令的
require
属性获取另一个指令控制器的$scope
,或者使用指令的父控制器传递共享值。下面是一个使用require
的示例
下一个示例的时间可能不是您想要的。它们共享同一个变量,但是在第一个指令的控制器中对$scope
所做的更改将在第二个指令的控制器已经运行之后才会应用
谢谢你的帮助。是否需要使用$scope来传递变量?例如,我的控制器中没有$scope,而是使用它。variable@user007对在第一个示例中,指令共享相同的
$scope
。在第二个示例中,它们有自己的作用域,但两个作用域都可以访问同一个变量。您没有将我的答案标记为已接受。有什么不充分的地方需要我澄清吗?
<div ng-app="myApp">
<foo></foo>
<bar></bar>
</div>
angular.module('myApp', [])
.directive('foo', function() {
return {
controller: function($scope) {
$scope.foo = 123;
}
};
})
.directive('bar', function() {
return {
require: '^foo',
controller: function($scope) {
console.log($scope.foo);
}
};
})
;
<div ng-app="myApp" ng-controller="MyCtrl">
{{sharedValue}}
<foo shared-value="sharedValue"></foo>
<bar shared-value="sharedValue"></bar>
</div>
angular.module('myApp', [])
.controller('MyCtrl', function($scope) {
$scope.sharedValue = 'abc';
})
.directive('foo', function() {
return {
scope: {
sharedValue: "="
},
controller: function($scope) {
console.log($scope.sharedValue); // abc
$scope.sharedValue = 123;
}
};
})
.directive('bar', function() {
return {
scope: {
sharedValue: '='
},
controller: function($scope) {
console.log($scope.sharedValue); // still abc, will update later
}
};
})
;