Angular使用vm而不是$ scope

时间:2016-04-04 11:33:29

标签: angularjs

我尝试使用vm。但有时它会起作用,但有时却不起作用。

这是我的代码:

<div ng-controller="ProfileCtrl as profile">
   <div class="profile-box">
        <h4 class="m-b-0">{{ profile.name }}</h4>
        <p class="text-muted"> {{profile.username }}</p>
   </div>
</div>

我的控制员:

angular.module('app')
.controller('profileCtrl', ['$scope', '$state', 'Profile', profileCtrl]);

 function profileCtrl($scope, $state, Profile) {
    const vm = this;
    Profile.get((resp)=> {
        vm.profile = resp.user;
    });
 }

如何让它使用vm

感谢。

2 个答案:

答案 0 :(得分:3)

<div ng-controller="ProfileCtrl as profile">更改为<div ng-controller="ProfileCtrl as vm">并在vm.profile.prop

视图中使用它

答案 1 :(得分:1)

我相信这里的关键是:

vm.profile = resp.user;

在您的视图中引用此方法的正确方法现在是:

{{profile.profile.name}}

第一个profile引用您的控制器(来自ProfileCtrl as profile),第二个引用该控制器中的profile对象(来自vm.profile = resp.user;