ycc*_*eam 4 javascript angularjs angularjs-directive
我在同一页面上有两个指令,但是在不同的元素上.像这样的东西:
<div directive-one>
<div directive-two></div>
</div>
Run Code Online (Sandbox Code Playgroud)
在directiveOne中,我创建了一些变量(比方说$scope.pageConfig.variable).我想使用directiveTwo来使用这个变量.
问题 - directiveOne并不总是在directiveTwo之前加载.
问题是 - 有没有办法确保directiveOne在directiveTwo之前加载,以便变量可用于directiveTwo?
谢谢 :)
更新:我发现答案应该是使用directiveOne中的控制器,如下所示:
return {
controller: function($scope){ $scope.variable = variable; },
link : ...
}
Run Code Online (Sandbox Code Playgroud)
问题是我以这种方式使用它时会收到错误[$ injector:unpr].这应该解决我的问题吗?知道为什么这会给我造成错误吗?
如何在directiveB中要求directiveA:
var myApp = angular.module('myapp', [])
.run(function(){
});
myApp.directive('fooDirective', function() {
return {
restrict: 'A',
controller: function(){
this.pageConfig = {
someVaraible: 'value from foo'
};
}
}
});
myApp.directive('barDirective', function() {
return {
restrict: 'A',
require: '^fooDirective',
link: function(scope, element, attr, fooDirectiveController){
console.log(fooDirectiveController.pageConfig);
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7136 次 |
| 最近记录: |