编程语言
首页 > 编程语言> > javascript – ng-repeat内的AngularJS指令未传递评估值

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