可以传递参数到AngularJS控制器创建吗?

前端之家收集整理的这篇文章主要介绍了可以传递参数到AngularJS控制器创建吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个控制器负责与API通信来更新用户名称,电子邮件等的属性。每个用户都有一个’id’,当查看配置文件页面时,从服务器传递。

我想传递这个值到AngularJS控制器,所以它知道什么API入口点是为当前用户。我试着通过ng-controller中的值。例如:

function UserCtrl(id,$scope,$filter) {

$scope.connection = $resource('api.com/user/' + id)

和在HTML中

<body ng-controller="UserCtrl({% id %})">

其中{%id%}打印从服务器发送的标识。但我得到错误

在创建控制器时,将值传递给控制器​​的正确方法是什么?

笔记:

这个答案是老的。这只是对如何实现预期成果的概念的证明。但是,它可能不是最好的解决方案,如下面的一些意见。我没有任何文档来支持或拒绝以下方法。请参考下面的一些意见,进一步讨论这个话题。

原始答案:

我回答这个
是的,绝对可以使用ng-init和一个简单的init函数

这里是它的例子在plunker

HTML

<!DOCTYPE html>
<html ng-app="angularjs-starter">
  <head lang="en">
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
    <script src="app.js"></script>
  </head>  
  <body ng-controller="MainCtrl" ng-init="init('James Bond','007')">
    <h1>I am  {{name}} {{id}}</h1>
  </body>
</html>

JavaScript

var app = angular.module('angularjs-starter',[]);

app.controller('MainCtrl',function($scope) {

  $scope.init = function(name,id)
  {
    //This function is sort of private constructor for controller
    $scope.id = id;
    $scope.name = name; 
    //Based on passed argument you can make a call to resource
    //and initialize more objects
    //$resource.getMeBond(007)
  };


});
原文链接:https://www.f2er.com/angularjs/147832.html

猜你在找的Angularjs相关文章