我正在尝试做一些简单的事情,将对象传递给动态创建的指令。简而言之,我使用了一个按钮指令,在单击时,使用$ compile生成一个包含指令元素的模板。我想传递一个对象作为该指令的属性。
angular.element(document.getElementById('dirContainer')).append($compile("<my-dynamic-directive name='data.name' data='data'></my-dynamic-directive>")(scope));
适用于Angular 1.2的小提琴,但不适用于Angular 1.3!我找不到任何有关此更改的相关文档。
jsfiddle:http://jsfiddle.net//weso9huo/(外部资源中的Angular dep)
编辑小提琴是1.2。将其更改为1.3会破坏它。
编辑2 使用Angular 1.3的这个小提琴http://jsfiddle.net/7jjfadun/不起作用。
有什么想法吗?
答案 0 :(得分:1)
您收到以下错误
错误:[ng:areq]参数&#39; MainCtrl&#39;不是一个功能,未定义 http://errors.angularjs.org/1.3.15/ng/areq?p0=MainCtrl&p1=not%20a%20function%2C%20got%20undefined
Angular 1.3+不再支持全局范围内的控制器声明。 除了你的代码有效。
myApp.controller('MainCtrl', function ($scope) {
$scope.data = {
id: 666,
name: "Fabruce"
}
});
function MainCtrl($scope) {
$scope.data = {
id: 666,
name: "Fabruce"
}
}
MainCtrl.$inject = ['$scope'];
myApp.controller('MainCtrl', MainCtrl);