0

初学者到棱角分明。

我有一个清单,list1 = ["item1"]

我想将整个列表绑定到一个标签。换句话说: <label> {{list1}} </label>. 这将输出["item1"]. 它看起来很俗气,所以我尝试使用 ng-bind。<label ng-bind = "list1"> </label>. 这未能向我显示任何输出(空白标签)。为什么这不起作用?

第二次尝试,我做到了<label ng-bind = "list1[0]">。这有效!为什么?

现在,我想尝试 ng-model 。<label ng-model = "list1"> </label>. 不工作。然后我试了,<label ng-model = "list1[0]">. 没有运气......呃!我根本无法理解这种情况

我试图找出 ng-bind 和 ng-model 之间的区别。在这里找到这个。如果该答案有效,为什么 <label ng-bind = "list1"> </label> 不等于 <label> {{list1}} </label>

4

1 回答 1

1

因为当你做 {{list1}} 时,你是绑定整个变量的两种方式,它恰好是一个数组,所以它显示它。你可以做

{{list1[0]}}

如果你想得到同样想要的效果

对于 ng-bind - 来自文档本身

ngBind 属性告诉 Angular 将指定 HTML 元素的文本内容替换为给定表达式的值,并在该表达式的值更改时更新文本内容。

所以它会用值替换你绑定的任何文本内容,因为你有一个字符串数组,它会拉出字符串。

在此处查看示例 - http://jsfiddle.net/U3pVM/16563/

第一个 {{}} 表达式只打印整个对象,第二个通过索引指定数组中的项目,第三个将数组中的每个项目打印为文本(逗号分隔)

只是添加最后一条评论,如果你的变量是一个字符串

$scope.list1 = "list1"

然后你会在 ng-bind 和 {{}} 之间获得相同的效果

于 2015-06-22T01:10:45.640 回答