将值传递给ng-init中的函数

时间:2018-01-19 02:54:47

标签: javascript html angularjs

我想使用div重复数据,在这个div中,我使用第一次重复的id值再重复一次。所以我想使用ng-init中的函数传递这个值,但是让我犯了错误。

let value = 5;
if (value > 0) return 1; //true;
if (value == 0) return 0; //false
if (value <= 0) return -1; // still false 
the confusion comes from the -1 which is a shorthand method for:

if (value <= 0 && value != 0) // combination of two booleans

那么,如何在ng-init =“getImages({{data.id}})”中传递{{data.id}}?如果我输入值ng-init =“getImages(15)”,则会出现项目。

file.js

        <div ng-controller="ProductsCtrl" ng-init="getData()">         
        <div class="col-sm-12" ng-repeat="data in form">
            <div class="card">
                <div class="card-header">
                    <h4>{{data.title}}</h4>
                </div>          
                <div class="card-block">
                    <div class="row" ng-init="getImages({{data.id}})">
                        <div class="form-group col-sm-3" ng-repeat="image in images">
                            <figure>
                              <img ng-src="{{imgURL}}/{{image.file_name}}" width="220" height="176">&nbsp;
                              <figcaption>Fig.1 - A view of the pulpit rock in Norway.</figcaption><br />
                              <label>Description : {{image.remarks}}</label><br />
                              <a href="">Read More . .</a>
                            </figure>
                        </div>
                    </div>
                </div>
                <div class="card-footer">
                    <h4>{{data.description}}</h4>
                </div>             
            </div>           
        </div>
    </div> 

2 个答案:

答案 0 :(得分:1)

您不需要注释 {{}}

 ng-init="getImages(data)

然后在控制器内

$scope.getImages = function(data){
 console.log(data.id);
}

答案 1 :(得分:1)

您需要记住一件事,如果您希望角色代码在html页面上工作,请使用{{}}。如果您使用角度属性编写代码,则不需要这些花括号......这意味着如果某些东西已经是angularjs的一部分,则不需要使用花括号。

要解决此问题,您需要替换以下行

<div class="row" ng-init="getImages({{data.id}})">

使用以下行

<div class="row" ng-init="getImages(data.id)">