两天前我刚刚开始学习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时,发送到服务器的值不是{的呈现值{1}}但是发送的值是my_func('OFF_V1')
。我试图找到一个解决方案,但现在像$ apply和$ digest这样的东西超出了我对Angular的理解,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
如果您在没有''
的情况下通过,那么您将获得值,因为angular会将其表达式解析为值。但在使用''
angular后会将其视为字符串然后停止解析。如果您想发送值,请尝试使用''
,但建议不要传递角度表达式({{}}
),否则将传递值
试试这个
data-ng-click="my_func(buttons[$index].desc)"