Javascript 控制器';alertForm';,指令'要求;loginForm';,can';找不到!在angularjs

Javascript 控制器';alertForm';,指令'要求;loginForm';,can';找不到!在angularjs,javascript,angularjs,Javascript,Angularjs,指令“loginForm”所需的控制器“alertForm”不能为空 找到了 您的指令要求alertForm控制器出现在loginForm的范围内。您必须将其添加到当前范围。或者在需求前面加一个^以在父范围中搜索 发件人: myPane指令有一个值为^myTabs的require选项。当指令使用此选项时,$compile将抛出错误,除非找到指定的控制器。^前缀表示此指令在其父级上搜索控制器(如果没有^前缀,则该指令将仅在其自己的元素上搜索控制器) 我们能看到指令使用的HTML吗?@Maarten

指令“loginForm”所需的控制器“alertForm”不能为空 找到了


您的指令要求
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);
                            }
                        });
                    }
                }
            }
        };
    });