【问题标题】:use controller variables in view angularjs ionic在视图 angularjs ionic 中使用控制器变量
【发布时间】:2016-04-02 16:43:22
【问题描述】:

我正在研究离子和角度。 我想在控制器中设置变量并在视图中使用它们。我正在使用 cookie 来保存当前登录的用户信息。 这是控制器代码:

.controller('profileCtrl',['$http','$scope', 
'fileUpload','$cookies','$cookieStore','$window',
 function($http, $scope,    fileUpload,$cookies,$cookieStore,$window) {
    $scope.CurrentUser = $cookieStore.get('CurrentUserInfo');<br/>
    $scope.CurrentUserFullname = $scope.CurrentUser.User.fullname;<br/>
    console.log($scope.CurrentUserFullname); **// working. Suppose name is Simerjit
}])

现在查看 profile.html。我想显示名字。我用这个:
&lt;h1&gt;{{CurrentUserFullname}}&lt;/h1&gt; //不工作

请大家帮忙。我是 Ionic 和 angularjs 的新手。

【问题讨论】:

  • 定义“不工作”。究竟会发生什么?另外,

    是否在控制器处理的 DOM 部分中?贴出所有相关代码。

  • 很可能您在模板中命名控制器时出现了拼写错误,请正确检查您的模板。
    //你应该在某个地方有这个。或者如果您使用 $routeProvider,请检查那里。
  • 我检查了 $routeProvider,它工作正常。

标签: angularjs variables ionic-framework


【解决方案1】:

我检查了代码。没错,但您需要检查 fullname 中的值

$cookieStore.get('CurrentUserInfo');

可能是 fullname 没有任何价值。

我在 ionic 中做了很多项目,你做对了。

{{CurrentUserFullname}}

【讨论】:

  • 基本上全名返回我为空。感谢您的回复。
【解决方案2】:

您需要为 profile.html 定义控制器,例如 &lt;div ng-controller="profileCtrl"&gt;

【讨论】:

  • 我正在使用 $routProvider 文件。所以它是自动绑定控制器和视图文件。我不需要再次指定 ng-controller。我说的对吗?
  • 您遇到什么错误?您是否还加载了 angular-route.js 和 your-named-controller.js?
【解决方案3】:

如果您将用户数据直接存储在 cookie 中,则不需要它。 $scope.CurrentUser.user.fullname

你可以直接用这个。

   $scope.CurrentUserFullname = $scope.CurrentUser.fullname;

【讨论】:

  • 谢谢。基本上它没有显示全名。现在问题已解决。感谢您的回复。
【解决方案4】:

如果您的数据绑定无法正常工作,请尝试在视图加载之前使用$route resolve 将数据放入控制器中...... 在您的 $route 配置中,

    $routeProvider
    .when("/profile", {
    templateUrl: "profile.html",
    controller: "profileCtrl",
    resolve: {
        CurrentUser: function($cookieStore){
            return $cookieStore.get('CurrentUserInfo');
    }
}})

并在Controller中注入CurrentUser

    .controller('profileCtrl',['$http','$scope','CurrentUser' fileUpload','$cookies','$cookieStore','$window', function($http, $scope,CurrentUser,fileUpload,$cookies,$cookieStore,$window) {
       $scope.CurrentUser = CurrentUser;
       $scope.CurrentUserFullname = CurrentUser.User.fullname;
       console.log($scope.CurrentUserFullname); }])

有关解决link的更多信息

快乐的编码...

【讨论】:

    【解决方案5】:

    控制器不应该知道应用的状态。 您应该在那里阅读有关 Angular 的规则和最佳实践的信息: https://github.com/johnpapa/angular-styleguide

    【讨论】:

    • 问答之间有什么关系吗?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签