javascript – ng-repeat内的AngularJS指令未传递评估值
作者:互联网
我刚刚开始学习AngularJS两天前,所以如果你认为我没有以Angular方式接近这个,那么请指导我.
所以下面的代码是我的HTML的一部分,它有ng-repeat指令
<div class="row" data-ng-repeat="button in buttons" ng-if="$index % 3 == 0">
<div class="col-lg-3 col-lg-offset-1">
<button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index].desc}}')">{{buttons[$index].name}}</button>
</div>
<div class="col-lg-3 col-lg-offset-1">
<button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index + 1].desc}}')">{{buttons[$index + 1].name}}</button>
</div>
<div class="col-lg-3 col-lg-offset-1">
<button class="btn btn-default button-width" data-ng-click="my_func('{{buttons[$index + 2].desc}}')">{{buttons[$index + 2].name}}</button>
</div>
</div>
下面的代码是我的Angular Controller,它将值传递给HTML中的ng-repeat指令,然后HTML中的ng-click指令调用控制器中的my_func函数.
remote_app.controller("remote-controller", function($scope, $http) {
$scope.buttons = [{
"desc": "OFF_V1",
"name": "OFF",
}, {
"desc": " ",
"name": " ",
}, {
"desc": "SOURCE_1",
"name": "SOURCE",
}];
$scope.my_func = function(command) {
$http.get("http://localhost:1337?comm=" + command).success(function() {
$scope.result = "Sent to server - " + command;
});
};
})
现在,当呈现HTML页面时,这会显示数组中的值,但是当我单击调用ng-click指令的按钮并依次调用my_func时,发送到服务器的值不是my_func的渲染值(‘OFF_V1 ‘)但是发送的值是my_func(‘{{buttons [$index] .desc}}’).我试图找到一个解决方案,但现在像$apply和$digest这样的东西超出了我对Angular的理解,所以任何帮助都会受到赞赏.
解决方法:
如果你没有”那么你会获得价值,因为有角度会将他的表达解析为价值.但是在使用”之后会将它视为一个字符串然后它会停止解析.如果你想发送值尝试使用没有”但建议不要传递角度表达式({{}})无论哪种方式值都将通过
试试这样吧
data-ng-click="my_func(buttons[$index].desc)"
标签:javascript,angularjs,angularjs-ng-repeat,angularjs-ng-click,html 来源: https://codeday.me/bug/20190628/1315108.html