![](/img/trans.png)
[英]Downgrading to AngularJS 1.2.28 from 1.3.x Error: $injector:modulerr
[英]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.