javascript
  • angularjs
  • angularjs-directive
  • angularjs-scope
  • 2015-06-01 47 views 0 likes 
    0

    我想要做一些简单的事情,将对象传递给动态创建的指令。简而言之,我使用了一个按钮指令,在点击时使用$ 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/(在外部的资源角DEP)

    EDIT小提琴是1.2。将其更改为1.3可以打破它。

    编辑2这个小提琴http://jsfiddle.net/7jjfadun/与Angular 1.3不起作用。

    任何想法?

    +0

    我用角1.2小提琴。如果将依赖关系更改为1.3,则它停止工作 – Vassilis

    +0

    看到我的回答,您没有正确定义控制器 – Satpal

    回答

    1

    你得到以下错误

    Error: [ng:areq] Argument 'MainCtrl' is not a function, got undefined http://errors.angularjs.org/1.3.15/ng/areq?p0=MainCtrl&p1=not%20a%20function%2C%20got%20undefined

    角1.3+不再支持在全球范围内控制声明。 除此之外,您的代码工作

    myApp.controller('MainCtrl', function ($scope) { 
        $scope.data = { 
         id: 666, 
         name: "Fabruce" 
        } 
    }); 
    

    DEMO


    function MainCtrl($scope) { 
        $scope.data = { 
         id: 666, 
         name: "Fabruce" 
        } 
    } 
    
    MainCtrl.$inject = ['$scope']; 
    myApp.controller('MainCtrl', MainCtrl); 
    

    DEMO 2

    +1

    Arrrrrgh,在回调JS事件中被超出范围咬住! Thx Satpal。 – Vassilis

    相关问题