将json字符串作为参数传递给ng-click

Sho*_*hel 5 angularjs angularjs-directive

我想将JSON字符串传递给ng-click

这是JSON字符串:

{"id":0,"parentID":0,"SubMenuItems":[],"imageName":"Icon.png","moduleName":"No Menu"}
Run Code Online (Sandbox Code Playgroud)

HTML:

     <!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@*" data-semver="1.4.0-beta.4" src="https://code.angularjs.org/1.4.0-beta.4/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="app" ng-controller="appCtrl">
    <h1>Hello Plunker!</h1>
    <button ng-click="go({
      "id": 0,
      "parentID": 0,
      "SubMenuItems": [],
      "imageName": "Icon.png",
      "moduleName": "No Menu"
    })">GOOOOOOOOOOOOOO!!!!!!!!!!</button>
  </body>

</html>
Run Code Online (Sandbox Code Playgroud)

JS: //代码就在这里

var app = angular.module('app', []);
app.controller('appCtrl', ['$scope',
  function($scope) {

    $scope.go = function(parm) {
      alert('hi');
    };
  }
]);
Run Code Online (Sandbox Code Playgroud)

PLUNKER

dfs*_*fsq 5

有两个问题。首先是您需要在某些元素上声明ngController指令ng-controller="appCtrl"。第二个问题是您必须将ngClick属性用引号引起来,然后将不带引号的对象传递给go函数。Angular将了解您正在传递并反对:

<body ng-app="app" ng-controller="appCtrl">
    <h1>Hello Plunker!</h1>
    <button ng-click='go({
      "id": 0,
      "parentID": 0,
      "SubMenuItems": [],
      "imageName": "Icon.png",
      "moduleName": "No Menu"
    })'>GOOOOOOOOOOOOOO!!!!!!!!!!</button>
</body>
Run Code Online (Sandbox Code Playgroud)

演示: http //plnkr.co/edit/8WuuhbCaZBom05ep576K?p = preview