AngularJS更改控制器参数

时间:2014-04-02 21:50:24

标签: javascript json angularjs

我一直在努力研究AngularJS,并试图了解一切如何联系在一起,但我已经陷入困境。

如何传递变量来更改页面上加载和显示的JSON? 我认为这将是一个按钮点击,指令将与控制器通信,但我不太确定。

如果我的JSON像控制器一样......

var id = 'peter'; 
var person = $resource('http://myjson.com/'+id+'.json')

我无法弄清楚如何根据按钮点击更改id

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我尝试尽可能简单地解释,您可以使用ngClick指令将数据作为参数从HTML传递到控制器。 控制器内的函数将被调用,因为它使用$scope绑定到 ngClick 指令。

示例

HTML:

<div ng-app="App"  ng-controller="ctrl">
    <div ng-repeat="itemId in items">
        <button ng-click="myClickFunc(itemId)">click {{itemId}}</button>
    </div>

</div>

JS:

var app=angular.module('App', ['ngResource']);

function ctrl($scope,$resource){
    $scope.items=[1,2,3,4];

    $scope.myClickFunc=function(itemId){

        var person = $resource('http://myjson.com/get/:id');
        person.get({id: itemId}).$promise.then(function(data) {
           // success
           $scope.myData = data;
        }, function(errResponse) {
           // fail
        });
    }

实例:http://jsfiddle.net/choroshin/zJ5G6/