angularjs如何绑定链接函数中的数据

时间:2015-04-24 11:16:49

标签: javascript angularjs

我有这样的指示。

app.directive('updateinfo', function() {
    function link(scope, element, attrs) {
      function update(){
         var str = '<input type="text" ng-model="scope.log1" />';
         element.html(str);    
      }
      update();
    }
    return {
      link: link
    };
});

该指令显示一个文本输入框,但它不显示scope.log1值,并且在文本框中所做的更改不会反映在范围变量中。我想使用链接功能,因为我想访问其他scope variables。有没有办法使用链接函数并仍然将数据绑定到范围变量。

我感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

首先,您不得将scope$scope写入DOM 其次,您需要编译您的内容

app.directive('updateinfo', function($compile) {
     function link(scope, element, attrs) {
          var str = '<input type="text" ng-model="log1" />';
          element.html(str);   
          $compile(element.contents())(scope);
     }
     return {
          link: link
     };
});

答案 1 :(得分:0)

这对我有用

.directive('updateinfo',['$compile', function($compile) {
    function link(scope, element, attrs) {
      function update(){
         var str = '<input type="text" ng-model="log1" />';
         element.html(str);    
      }
      update();
      element.replaceWith($compile(element.html())(scope));
    }
    return {
      link: link

    };
}]);