gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:22:28 25 4
gpt4 key购买 nike

您好,我们目前正在延迟加载 AngularJS 片段/模板,一切正常......直到我们开始迁移到 1.3。现在我们得到了

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

问题是这些片段包含 Angular 模板代码和一些脚本……最常见的是 Controller 或类似的东西。

我们使用的 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 中有一个重大更改,您无法通过全局作用域函数引用 Controller 。您必须通过在模块上创建 Controller 时使用的名称来引用 Controller 。如果您没有明确地将 Controller 添加到模块中,那么您现在必须这样做。

无效:

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

有效:

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

您还可以引用这个问题/答案:angular 1.3 can't find the controller function

关于javascript - AngularJS 延迟加载在 1.3.x 迁移后中断,获取参数 'XXCntr' 不是函数,未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com