有没有办法删除HTML元素中的角度属性?

时间:2016-05-05 12:43:15

标签: javascript angularjs

我试图了解Angular.js如何使用simple example

<div ng-app="">
  <p>Input something in the input box:</p>
  <p>Name : <input type="text" ng-model="name" placeholder="Enter name here"></p>
  <h1>Hello {{name}}</h1>
</div>

enter image description here

有什么方法可以删除所有这些,只需在单独的JavaScript上使用angular吗?

我的意思是能够做类似的事情......

document.getElementsByTagName('input')[0].ng-model = "name";
document.getElementsByTagName('h1')[0].innerHTML = "Hello {{name}}";

或者是否必须与HTML属性进行网格划分?

我找不到任何相关信息。提前谢谢。

1 个答案:

答案 0 :(得分:4)

与其他MVVM框架一样,Angular被设计为“突兀”(混合到HTML中),它实际上并不意味着不引人注目地使用。更多关于这个问题及其在programmers.stackexchange.com上的答案:Is obtrusive JavaScript required to support a feature of AngularJS?

这并不意味着你不能。您可以使用代码添加必要的属性,例如之前让Angular在您的DOM上松散。您可以使用manual initialization代替默认的自动初始化,并在bootstrap调用之前将代码填入属性中来实现:

document.getElementsByTagName('input')[0].setAttribute("ng-model", "name");
document.getElementsByTagName('h1')[0].innerHTML = "Hello {{name}}";
// ...and so on...
angular.bootstrap(document, ['myApp']);

......但这并不是Angular真正意义上的用法。