繁体   English   中英

在1.3.x迁移后,AngularJS延迟加载中断,获取参数'XXCntr'不是一个函数,未定义

[英]AngularJS lazy loading breaks after 1.3.x migration, getting Argument 'XXCntr' is not a function, got undefined

嗨,我们目前正在懒惰地加载AngularJS代码片段/模板,并且一切工作正常……直到我们开始迁移到1.3。 现在我们得到

参数“ WhateverCntr”不是函数,未定义

关键是这些片段包含Angular模板代码和一些脚本……最常见的是控制器或类似的东西。

我们正在使用的javascript如下:

(function(angular) {
    'use strict';

    angular.module('our.ui').directive('fwDynamic', [
        '$compile', '$http', function($compile, $http) {
            return {
                restrict: 'EA',
                scope: {
                    action: '@',
                    ajaxModel: '='
                },
                link: function(scope, element, attrs) {
                    scope.$watch('ajaxModel', function(data) {
                        $http({
                            method: 'POST',
                            url: scope.action,
                            data: data,
                            cache: false
                        }).then(function(response) {
                            $compile(response.data)(scope, function (clonedElement, scope) {
                                element.html('');
                                element.append(clonedElement);
                            });
                        });
                    });
                }
            };
        }    
    ]);
})(angular);

有谁知道它为什么断裂? 我们似乎找不到问题。

1.3版中有一个重大更改,因为您无法通过全局作用域函数来引用控制器。 您必须通过在模块上创建控制器时使用的名称来引用该控制器。 如果您没有将控制器明确添加到模块中,则必须立即执行此操作。

无效:

function MyCtrl(){}
<div ng-controller="MyCtrl"></div>

有效:

function MyCtrl(){}
angular.module('myModule').controller('myCtrlName', MyCtrl);
<div ng-controller="myCtrlName"></div>

您也可以参考以下问题/答案: angular 1.3找不到控制器功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM