AngularJS更改控制器参数

AngularJS changing controller parameter

本文关键字:参数 控制器 AngularJS      更新时间:2023-09-26

我一直在研究AngularJS,并试图弄清楚所有内容如何链接在一起,但我有点卡住了。

如何传递变量以更改加载并显示在页面上的 JSON?我以为这是一个按钮点击,指令会与控制器对话,但我不太确定。

如果我的 JSON 像控制器一样

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

例如,我不知道如何根据按钮单击更改id

任何帮助都非常感谢

我将尝试尽可能简单地解释,您可以使用 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/