这是我的HTML。
<input type="text" id="ghusername" ng-model="username" placeholder="Github username...">
<span id="ghsubmitbtn" ng-click="getUsers()">Pull User Data</span>这是我的主计长A。
app.controller("homeController", ["$scope", "$http", function ($scope, $http) {
$scope.getUsers = function () {
$http.get("https://api.github.com/users/" + $scope.username)
.success(function (data) {
//some stuff
})这是B(为了发帖)。如何在HTML上获得这个用户名,以便在另一个控制器中显示它?例:
app.controller("reposController", ["$scope", "$http", function ($scope, $http) {
$scope.getRepos = function () {
$http.get("https://api.github.com/users/" + $scope.username + "/repos")
.success(function (data) {
// some stuff
})
};我尝试过用户服务,工厂,甚至$rootScopes,但是它们似乎不起作用,有什么帮助吗?顺便说一句,如果我不清楚,告诉我,我会编辑这篇文章,谢谢。
编辑:我最终使用了$rootScope,我知道这不是最好的主意,但这只是个小问题。我会保留你所有的答案作为参考,因为我确信它们都有效,但我太笨了,无法实现它们。谢谢。
发布于 2015-04-29 11:04:13
必须将$rootScope引用到控制器中:
app.controller("homeController", ["$scope", "$http","$rootScope", function ($scope, $http, $rootScope) ...在此之后,只需访问根范围变量:
controller1:$rootScope.someValue = "some value"; Controller2:$scope.controllerScopeValue = $rootScope.someValue;
发布于 2015-04-29 11:05:38
使用service
app.service('name', [function(){}])然后将'name'添加到两个类似于controllers的
app.controller("reposController", ["$scope", "$http", 'name', function ($scope, $http, name) {
$scope.name = name;然后你就可以像
name.username在html中
<input type="text" id="ghusername" ng-model="name.username" placeholder="Github username...">发布于 2015-04-29 11:22:00
如果您的数据模型有一些假设,这应该是可行的。
它创建一个shared单例对象。一个控制器添加用户(或其他数据)作为该属性的属性。然后,其他控制器,或者如果重新加载相同的控制器,就可以访问shared上的相同数据。
请注意,service只返回任何东西的单个实例,它不需要代码或方法。在本例中,使用value更容易,它是function() { return {}; }的缩写,也同样有效。
记住在任何需要的地方注入shared。
app.controller("homeController", ["$scope", "$http", "shared", function ($scope, $http, shared) {
$scope.getUsers = function () {
$http.get("https://api.github.com/users/" + $scope.username)
.success(function (data) {
shared.user = data.user; // or wherever it comes from
//some stuff
})
app.controller("reposController", ["$scope", "$http", "shared", function ($scope, $http, shared) {
$scope.getRepos = function () {
$http.get("https://api.github.com/users/" + shared.user.name + "/repos")
.success(function (data) {
// some stuff
})
};
app.value('shared', {});https://stackoverflow.com/questions/29941713
复制相似问题