如何使用将指令创建的元素绑定到Angular中的模型?

时间:2014-05-07 07:11:12

标签: javascript html angularjs

我想用控制器中的对象为输入元素建模,但该元素不是html中的元素。我有一个指令,我在里面制作了这个元素(newElement在下面的片段中)。 1.Directive:

panel.directive('ngCustomType', function ($compile) {
return {
    scope: {
        entity: '='
    },
 link: function (scope, elem, attrs){
    newElement = angular.element('<input type="text"/>');
    newElement.attr("ng-model", "entity.name");     // I also tried newElement.attr("ng-model", "currentEntity.name"); but it didn't work
    $compile(newElement)(scope);
    elem.append(newElement);
}

2.Controller:

$scope.currentEntity = {name: ""};

3.View:

<div ng-custom-type  entity="currentEntity"></div>

当我在生成的html中检查创建的输入元素时,我在输入元素中有ng-model='entity.name',但它并没有真正由我的对象建模,而当我更改输入时currentEntity.name没有改变。我如何将它们绑在一起?

1 个答案:

答案 0 :(得分:0)

试试这个:

newElement.attr("ng-model", "entity.name");