gpt4 book ai didi

javascript - 您可以在创建时将参数传递给 AngularJS Controller 吗?

转载 作者:IT老高 更新时间:2023-10-28 13:11:36 33 4
gpt4 key购买 nike

我有一个 Controller 负责与 API 通信以更新用户、姓名、电子邮件等的属性。每个用户都有一个 'id',当配置文件页面时从服务器传递被查看。

我想将此值传递给 AngularJS Controller ,以便它知道当前用户的 API 入口点是什么。我尝试在 ng-controller 中传递值。例如:

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

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

在 HTML 中

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

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

在创建 Controller 时将值传递给 Controller ​​的正确方法是什么?

最佳答案

注意事项:

这个答案是旧的。这只是关于如何实现预期结果的概念证明。但是,根据下面的一些评论,它可能不是最佳解决方案。我没有任何文件支持或拒绝以下方法。请参阅下面的一些评论以进一步讨论此主题。

原答案:

我回答了这个问题是的,你绝对可以使用 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)
};


});

关于javascript - 您可以在创建时将参数传递给 AngularJS Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14523679/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com