javascript – AngularJS:ng-model与dom元素的后期绑定

前端之家收集整理的这篇文章主要介绍了javascript – AngularJS:ng-model与dom元素的后期绑定前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个网页,其中包含一些我无法编​​辑的 HTML元素.我想动态地将ng-model属性附加到这些属性,并让AngularJS将它们重新绑定到范围.我想要完成的一个简化示例可以找到 here
<script src="//code.jquery.com/jquery-2.1.0.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script>
function MyCtrl($scope) {
    $scope.myModel1 = "Hi";
    $scope.myModel2 = "there";
    var myModel2 = angular.element("#myModel2");
    //This won't work
    myModel2.attr("ng-model","myModel2");
}
</script>
<div ng-app ng-controller="MyCtrl">
    <input type="text" ng-model="myModel1"/>
    <!-- I can't touch this -->
    <input type="text" id="myModel2" />
</div>

解决方法

你需要使用$compile( docs)
$compile(myModel2.attr("ng-model","myModel2"))($scope);

demo

当您加载页面时,angular会自动在HTML上使用$compile,这就是它如何知道分配哪些指令的元素.如果您只是像尝试一样更改属性,则角度不知道.你必须使用$compile.

猜你在找的JavaScript相关文章