【问题标题】:Can anyone explain the difference between expression, ng-bind and ng-model?谁能解释表达式、ng-bind 和 ng-model 之间的区别?
【发布时间】:2017-06-06 17:06:51
【问题描述】:

我对表达式 {{}}、ng-bind 和 ng-model 感到很困惑。如果可能,请举例说明。

【问题讨论】:

    标签: angularjs ng-bind


    【解决方案1】:

    ng-bindng-model 都是 Angular 中的内置指令。

    虽然ng-bind 帮助您将值绑定到元素的innerHTML,但ng-model 帮助您将数据绑定到交互式元素(即<input><checkbox><textarea>),你得到了它..

    用法:

    ng-绑定

    如果你有 $scope.textFromComponent = "Superman" 在您的控制器中。

    <span ng-bind="textFromComponent"></span> 将此值绑定到此 span 元素中。

    {{ }}

    使用{{}} 可以实现相同的行为。

    这组花括号称为插值指令,它们是ng-bind 的简写。使用它们时,您不再需要编写 ng-bind 而是直接绑定它们。喜欢:

    <span>{{textFromComponent}}</span>

    ng-model

    <input ng-model="textFromComponent" />

    将此值绑定到输入元素的value 属性。这将绑定值 two-way 这意味着如果您在代码中对 $scope.textFromComponent 进行任何更改,它将自动反映在屏幕上。同时,如果用户对其进行任何更改(因为它们是交互式元素,用户可以更改它们),更改后的值将传递给您的代码。

    【讨论】:

      【解决方案2】:

      ng-bind{{}} 基本相同。但是,在您的应用程序完全加载之前,有时{{}} 是可见的。 ng-bind 通常在所有内容加载完成之前看起来会更好一些。 {{}} 更简单,但有一些需要 ng-bind 的限制。 <span ng-bind="something"></span> 是你的朋友。

      在某些情况下{{}} 将不起作用。例如,当您的数据是标记时。

      ng-model 用于输入。

      下面的例子中使用了这三个:

      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
      <div ng-app>
        <p>Please Enter Your Name</p><input type="text" ng-model="yourName" />
        <p>Hello <span ng-bind="yourName"></span>, this is an ng-bind!</p>
        <p>Hello {{yourName}}, this is bind in brackets</p>
      </div>

      【讨论】:

        【解决方案3】:
        • {{ data }} 将被相关范围内的data 变量的值替换。它会随着data 内部scope 的变化而自动更新。所以,我们说,
          {{ data }} 绑定到变量data。但是,如果data 是html,出于安全原因,angularjs 会自动转义标记。

        • ng-bind 绑定元素的“内容”。比如,在&lt;div ng-bind="data" &gt;&lt;/div&gt; 的情况下,div 将填充data 变量的值。在这种情况下,data 中的标记也将被渲染。(使用ng-bind-html

        • ng-model 只是将 html 元素的值绑定到范围内的某个变量。比如:如果&lt;input ng-model="data" /&gt; 变量data 在范围内将有输入的值。

        希望有帮助!

        【讨论】:

        • 还有一个问题是表达式 {{}} 是一种方式绑定还是两种方式?
        • {{}} 是单向绑定作用域-->查看
        • {{}} 是 Angular 中绑定值的表达式,如果您使用 {{}} 表达式意味着您使用两种方式绑定,而 {{::}} 是 Angular 的一种方式绑定表达式。请参考这个stackoverflow.com/questions/33480548/…
        猜你喜欢
        • 1970-01-01
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-06
        • 2015-04-27
        • 1970-01-01
        相关资源
        最近更新 更多