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

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

解决方法

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

demo

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

猜你在找的JavaScript相关文章