Javascript AngularJs帮助,在传递到隔离作用域的对象中选择数组时遇到问题
有人能告诉我我做错了什么吗?是否可以像我在这里尝试的那样对图像数组进行插值?我知道该对象正在工作,因为inkObject.header属性可以很好地插值到页面,但数组(包含各种图像)由于某种原因无法工作。。。我不确定它是否不允许在对象中传递这样的数组,或者我只是做错了什么 谢谢Javascript AngularJs帮助,在传递到隔离作用域的对象中选择数组时遇到问题,javascript,angularjs,isolation,Javascript,Angularjs,Isolation,有人能告诉我我做错了什么吗?是否可以像我在这里尝试的那样对图像数组进行插值?我知道该对象正在工作,因为inkObject.header属性可以很好地插值到页面,但数组(包含各种图像)由于某种原因无法工作。。。我不确定它是否不允许在对象中传递这样的数组,或者我只是做错了什么 谢谢 //Controller in app.js app.controller('galleryCtrl', ['$scope', '$http','$location', funct
//Controller in app.js
app.controller('galleryCtrl', ['$scope', '$http','$location',
function ($scope, $http, $location) {
$scope.ink = {
header: "Personalized Ink Products",
imageArray: [
'ink-1.jpg',
'ink-2.jpg',
'ink-3.jpg',
'ink-4.jpg'
]
};
}]);
//my directive in app.js
app.directive('pictureGallery', function () {
return {
templateUrl: 'directives/picturegallery.html',
replace: true,
scope: {
inkObject: '='
}
}
});
//the template
<div class="top-space">
<h1>{{ inkObject.header }}</h1>
<div class="row">
<div class="col-xs-6 col-sm-4 col-md-4" ng-repeat="image in {{ inkObject.imageArray }}">
<a href="img/{{image}}" target="_blank">
<img ng-src="img/{{image}}" width="200px" height="200px"
class="img-responsive img-thumbnail bottom-space">
</a>
</div>
</div>
</div>
//the view
<picture-gallery ink-object="ink"> </picture-gallery>
//app.js中的控制器
app.controller('galleryCtrl'、['$scope'、'$http'、'$location',
函数($scope、$http、$location){
$scope.ink={
标题:“个性化油墨产品”,
图像阵列:[
‘ink-1.jpg’,
“ink-2.jpg”,
‘ink-3.jpg’,
‘ink-4.jpg’
]
};
}]);
//app.js中的我的指令
应用指令('pictureGallery',函数(){
返回{
templateUrl:'directions/picturegallery.html',
替换:正确,
范围:{
inkObject:“=”
}
}
});
//模板
{{inkObject.header}
//景色
您的指令应该:
return {
....
restrict : 'E', // Element name
....
}
默认值为'A'
(属性)
在模板中,ng repeat的用法
< ... ng-repeat="image in inkObject.imageArray" ...>
<。。。ng repeat=“inkObject.imageArray中的图像”…>
不需要
{{}
我认为问题在于ng repeat
部分,您可以参考plnkr:
我刚换了
ng-repeat="image in {{ inkObject.imageArray }}"
与
它成功了。正如两位评论者所建议的那样,我需要去掉括号,即{{inkObject.imageArray}}应该是inkObject.imageArray。然而,当有人建议的时候,我已经试过了,但一开始它不起作用。我意识到我的浏览器正在缓存指令中的数据,因此我所做的编辑没有显示在屏幕上。显然,在AngularJs指令中经常会发生这种情况。所以,小心!一旦我意识到这一点,我就在templateUrl的末尾添加了一个查询字符串,然后我就可以看到我对指令所做的编辑,并看到我所要做的就是删除括号 嘿,谢谢你的回复。尽管如此,尽管添加了restrict属性,图像仍然没有显示。我还建议通过
image
标记中的ng src
验证图像是否确实存在于引用的路径上,或者验证引用的路径是否正确。
ng-repeat="image in inkObject.imageArray"