AngularJs - 无法使用 ng-click 传递由 ng-repeat 生成的对象
AngularJs - Unable pass object generated by ng-repeat using ng-click
我是 Angular 的新手,并尝试根据从服务器返回并由ng-repeat
在前面。
这是HTML:
<div ng-click="go('{{img.hashtag}}')" ng-repeat="img in obj" ng-style="{'background':url({{img.url}})'}">
<span class="boxName">{{img.hashtag}}</span>
</div>
这很好用:
ng-click="selectHash($event);go('some simple string')"
而这不是:
ng-click="selectHash($event);go('{{img.hashtag}}')"
因为它被解释为一个简单的字符串,而不是从对象中提取的数据。
go
函数负责导航到另一个页面并将数据传递给对应的controller
:
$scope.go = function (hash1) {
$location.path("hash");
$scope.hashFac = hashFac;
$scope.hashFac.hash = hash1;
};
厂家服务:
appName.factory("hashFac",function(){
return {
};
});
如何从 img
对象中提取数据并使用 ng-click
继续发送?
你试过没有引号 '
和花括号 {{}}
:
ng-click="selectHash($event);go(img.hashtag)"
你不应该在 ng-click
和 ng-style
指令中真正使用 {{}}
插值指令,同时生成背景 url 你应该使用字符串连接。
<div ng-click="go(img.hashtag)" ng-repeat="img in obj"
ng-style="{'background': 'url(' + img.url + ')'}">
指令 ng-click
由 Angular 求值,所以你不需要在那里使用任何大括号。将两个函数调用合并为一个:
$scope.buttonClicked = function(e, img) {
// e.preventDefault() or whatever
$scope.selectHash(e);
$scope.go(img.hashtag);
}
然后在您的模板中使用:
ng-click="buttonClicked($event, img)"
我是 Angular 的新手,并尝试根据从服务器返回并由ng-repeat
在前面。
这是HTML:
<div ng-click="go('{{img.hashtag}}')" ng-repeat="img in obj" ng-style="{'background':url({{img.url}})'}">
<span class="boxName">{{img.hashtag}}</span>
</div>
这很好用:
ng-click="selectHash($event);go('some simple string')"
而这不是:
ng-click="selectHash($event);go('{{img.hashtag}}')"
因为它被解释为一个简单的字符串,而不是从对象中提取的数据。
go
函数负责导航到另一个页面并将数据传递给对应的controller
:
$scope.go = function (hash1) {
$location.path("hash");
$scope.hashFac = hashFac;
$scope.hashFac.hash = hash1;
};
厂家服务:
appName.factory("hashFac",function(){
return {
};
});
如何从 img
对象中提取数据并使用 ng-click
继续发送?
你试过没有引号 '
和花括号 {{}}
:
ng-click="selectHash($event);go(img.hashtag)"
你不应该在 ng-click
和 ng-style
指令中真正使用 {{}}
插值指令,同时生成背景 url 你应该使用字符串连接。
<div ng-click="go(img.hashtag)" ng-repeat="img in obj"
ng-style="{'background': 'url(' + img.url + ')'}">
指令 ng-click
由 Angular 求值,所以你不需要在那里使用任何大括号。将两个函数调用合并为一个:
$scope.buttonClicked = function(e, img) {
// e.preventDefault() or whatever
$scope.selectHash(e);
$scope.go(img.hashtag);
}
然后在您的模板中使用:
ng-click="buttonClicked($event, img)"