这两者之间有什么区别(为什么{{}}中的一个和#34;中的一个?")?
<body ng-controller="StoreController as store">
<img ng-src="{{store.product.images[0]}}" />
哦,我想我现在看到了。 Store控制器作为存储是一个函数,store.product.images [0]是一个字符串,对吗?
答案 0 :(得分:2)
那么为什么ng-controller
指令不同?好吧,它只是编写指令(ng-xxx
位)的方式。对于这个答案,它可能有点深入,但是值得研究如何创建自定义指令(参见https://docs.angularjs.org/guide/directive),以及如何将数据参数传递给它们。
差异归结为ng-controller
和ng-src
指令如何期望其参数。
当某些内容介于{{}}
之间时,您可以将其视为向Angular标识此属性值在传递给指令之前需要插值。插值是一种在字符串中编译占位符的形式,它是ng-src
期望传递的字符串。因此,为了给它产品图像的字符串值,它需要使用{{}}
。
因此,在您的示例中,{{store.product.images[0]}}
可能会被插入(将文本替换)插入到"\content\image1.jpg"
之类的内容中。
ng-controller
将自己解析值StoreController as store
,它只是它所知道的语法。因此,它只是想要按原样读取属性值,而不进行预处理/插值。
我已对此进行了简化,但您可以随时在https://docs.angularjs.org/api/ng/service/$interpolate查看更多详细信息。
我希望这是有道理的,我并没有把这个问题弄糊涂。