从模板到函数的访问对象属性 - Angular

时间:2015-09-09 03:52:19

标签: javascript angularjs

简单地说,我有一个对象数组,[图像],我在Ng-repeat上显示得很好。当我单击一个div时,我想看到模板中单击的特定图像的“id”属性。

控制器中的功能:

angular.forEach(value, function (value, key) {
    $scope.images.push({
        id: i,
        src: ("data:image/jpeg;base64," + value)
    });
    i = i + 1;
}

$scope.seeOne = function () {
    console.log(image.id);
}

我的模板:

<div id="galscrolldiv" ng-repeat="image in images">
    <div ng-click="seeOne()">
        <img ng-src="{{images[$index].src}}" width="100%" />
    </div>
</div>

2 个答案:

答案 0 :(得分:2)

从视图/模板发送image作为参数。然后,您可以访问所单击图像的图像属性。

您错过了)的{​​{1}}。

控制器:

forEach

查看/模板:

angular.forEach(value, function (value, key) {
    $scope.images.push({
        id: i,
        src: ("data:image/jpeg;base64," + value)
    });
    i = i + 1;
});

// Get the parameter i.e. image that is clicked
$scope.seeOne = function (image) {
    console.log(image.id);
};

答案 1 :(得分:1)

您还可以从模板

发送$ index属性
<div id="galscrolldiv" ng-repeat="image in images">
    <div ng-click="seeOne($index)">
    <!--                  ^^^^^-->
        <img ng-src="{{images[$index].src}}" width="100%" />
    </div>
</div>

然后在控制器内

$scope.seeOne = function (index) {
    console.log($scope.images[index].id);
};

但这可能会在使用过滤器时引起问题。 所以在使用过滤器的情况下避免使用$ index。