如何通过ng-click函数传递作用域变量?

3

当我点击cartDetails时,需要将动态作用域变量x.SmId的值传递给下面的函数,并在弹出框中显示该参数。我们如何在angular js中实现这个功能?

当我点击cartDetails时,在AngularJS中如何将动态作用域变量x.SmId的值传递给下方函数并在弹出框中显示该参数?
<div ng-app="" ng-controller="MyCtrl">
     <div ng-repeat="x in names">
       <div ng-click="cartDetails('{{x.SmId}}')">
        <div>{{x.name}}</div>
       </div>
     </div>
    </div>

<script>
 angular.module('MyApp', [])
.controller('MyCtrl', ['$scope', '$http', function($scope, $http) {
  $scope.search = function(param) {

      $http.get('AngularJs-Response.jsp?mid='+param).success(function(response) {
        $scope.names = response;        
      });

  };
  $scope.cartDetails = function(smid) {
      alert(smid);
      };
}]);
</script>

6
这是一个AngularJS指令的语法, ng-click表示当用户点击时将触发指定的函数或方法。在这个例子中,x.SmId被传递给名为cartDetails的函数。 - Kalhan.Toress
谢谢!有了这个,我的问题得到了解决。 - Sujithrao
2个回答

9

使用简单明了的方式:

 ng-click="cartDetails(x.SmId)"

愉快的编码,开心无比 :-) - squiroid
如何在不使用 x 的情况下传递在控制器中声明的单个变量? - Mahavirsinh Padhiyar
如果问题得到解决,为什么不将其作为答案进行验证? - SKYnine

3

我尝试使用:

ng-click="cartDetails(x.SmId)"

但是它只是把x.SmId作为字符串,而没有替换为值。在阅读了更多的文章后,我找到了以下解决方案:

<div ng-click="cartDetails('{{x.SmId}}')">

这是一个使用AngularJS v1.3.9的可行解决方案。


如果你想把 x.SmId 作为布尔值,该怎么办呢?因为 'false' 等于 true。有什么想法吗? - Dimitris Damilos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接