Javascript 控制器';alertForm';,指令'要求;loginForm';,can';找不到!在angularjs
指令“loginForm”所需的控制器“alertForm”不能为空 找到了Javascript 控制器';alertForm';,指令'要求;loginForm';,can';找不到!在angularjs,javascript,angularjs,Javascript,Angularjs,指令“loginForm”所需的控制器“alertForm”不能为空 找到了 您的指令要求alertForm控制器出现在loginForm的范围内。您必须将其添加到当前范围。或者在需求前面加一个^以在父范围中搜索 发件人: myPane指令有一个值为^myTabs的require选项。当指令使用此选项时,$compile将抛出错误,除非找到指定的控制器。^前缀表示此指令在其父级上搜索控制器(如果没有^前缀,则该指令将仅在其自己的元素上搜索控制器) 我们能看到指令使用的HTML吗?@Maarten
您的指令要求
alertForm
控制器出现在loginForm
的范围内。您必须将其添加到当前范围。或者在需求前面加一个^
以在父范围中搜索
发件人:
myPane
指令有一个值为^myTabs
的require
选项。当指令使用此选项时,$compile将抛出错误,除非找到指定的控制器。^前缀表示此指令在其父级上搜索控制器(如果没有^
前缀,则该指令将仅在其自己的元素上搜索控制器)
我们能看到指令使用的HTML吗?@MaartenBicknese我在添加你所说的内容时编辑了我的问题。我实际上是在寻找浏览器和JS解析的HTML。类似于
的东西我认为这个错误与那个案例无关。对不起,我想我可能把你们弄糊涂了。在HTML的某个地方,您使用了登录表单
元素。该元素将使用您的指令,并反过来触发错误。我正在寻找使用了指令元素的HTML。最好也使用父元素(为问题提供一些上下文)。您能检查我编辑的答案吗?即使我在你的文档中也会遇到同样的错误。问题发生在HTML/Jade级别,而不是JavaScript中。你想用alertForm
扩展loginForm
的功能吗?顺便说一句,我不知道,我想这是在Jade级别。是的,我正在努力扩展。
angular.module('jobsApp')
.directive('alertForm', function () {
return {
templateUrl: 'app/directives/alert/alertForm.html',
restrict: 'E',
scope: {
topic: '=topic',
description: '=description'
}
}
})
.directive('loginForm', function() {
return {
templateUrl: 'app/directives/loginForm/loginForm.html',
restrict: 'E',
require: '^alertForm',
scope: {
successCallback: '&',
errorCallback: '&',
emailField: '='
},
link: function (scope, element, attrs, alertFormModelCtrl) {
scope.alertFormModel = alertFormModel
},
controller: function ($rootScope, $scope, authenticationService) {
$scope.loginFormData = {};
$scope.inProgress = false;
$scope.onLogin = function (form) {
if (form.$valid) {
$scope.inProgress = true;
authenticationService.loginUser('password', $scope.loginFormData).then(function () {
$scope.inProgress = false;
}, function (err) {
$scope.inProgress = false;
if (err.message) {
//$scope.alertFormCtrl.topic = "asdffasfd";
alert(err.message);
}
});
}
}
}
};
});