我尝试“要求”一个父控制器(不是指令),但是AngularJS返回一个异常。代码是这样的:
app.controller("myController", function ($scole) {
...
});
app.directive("myDirective", function ($q) {
return {
require: "^myController",
template: "",
link: function (scope, element, attrs, myCtrl) {
...
}
};
});
<div ng-controller="myController as myCtrl">
...
<div my-directive>...</div>
...
</div>
错误:找不到指令’myDirective’所需的[$ compile:ctreq]控制器’myController’!
为什么?
也许,require
属性必须引用 指令 的控制器?
谢谢
要求在另一个指令中使用其他指令控制器,请参考以下示例
var App = angular.module('myApp',[]);
//one directive
App.directive('oneDirective',function(){
return {
restrict: 'E',
controller:function($scope){
$scope.myName= function(){
console.log('myname');
}
}
}
});
//two directive
App.directive('twoDirective',function(){
return {
require:'oneDirective' //one directive used,
link : function(scope,ele,attrs,oneCtrl){
console.log(oneCtrl.myName())
}
}
})
问题内容: 谁能告诉我如何在另一个angularJS指令中包含一个指令中的控制器。例如我有以下代码 通过所有帐户,我应该能够使用addProduct指令访问控制器,但是我不能。有更好的方法吗? 问题答案: 我很幸运,并在对问题的评论中回答了这个问题,但是为了完整起见,我发布了完整的答案,因此我们可以将此问题标记为“已回答”。 这取决于您要通过共享控制器来完成的工作。您可以共享同一控制器(尽管实例不
问题内容: 我可能会考虑将其完全倒退,但是我正在尝试制作三个嵌套指令,让它们称为:屏幕,组件和小部件。我希望窗口小部件能够触发组件中的某些行为,从而触发屏幕中的某些行为。所以: 我可以使用来在小部件的链接fn中要求父组件,但是如何进一步使组件控制器访问其包含的屏幕呢? 我需要的是WHAT in组件,因此,当您单击小部件的按钮时,它会发出“ screeny!”警报。 谢谢。 问题答案: 您可以通过以
问题内容: 我试图递归地到达父“ box”指令的控制器: 我希望控制器变量在链接函数中,但是我得到了实际box指令的控制器。 所以我的问题是…在这种情况下如何获得对PARENT控制器的访问权限: http://jsfiddle.net/gjv9g/1/ 问题答案: 好,找到了… 如果要获取父元素的控制器,请执行以下操作: 这将返回父指令的控制器,或者返回更高一级的父指令的父指令的控制器。如果您需要
问题内容: 我有以下结构: 在配置内部,我设置了一些变量,这些变量正在使用module.export导出。 我尝试使用以下代码从config.js 运行时检索这些变量: 他们都不工作。我该怎么做才能从另一个文件夹中检索数据? 问题答案: 是 是 是 是
问题内容: 因此,我确实看到了另一个问题:如何在指令UT中模拟所需的指令控制器,这基本上是我的问题,但似乎该线程的答案是“更改设计”。我想确保没有办法做到这一点。我有一个指令声明一个由子指令使用的控制器。我现在正尝试为children指令编写茉莉花测试,但由于它们依赖于控制器,因此我无法让它们在测试中进行编译。看起来是这样的: 子指令: 茉莉花测试: 我没有办法用茉莉花测试子指令吗?如果可以,我会
Gradle 1.10 或者 1.11 或者 1.12,并且使用 0.11.1 版本的插件 SDK with Build Tools 要求 19.0.0,有些功能可能需要更新的版本