我想弄清楚如何转换它:
app.controller('AnswersCtrl', ['$scope', '$http', '$log', '$ionicModal', '$state', 'SuspectService',
function($scope, $http, $log, $ionicModal, $state, SuspectService) {
$scope.suspects = [];
SuspectService.getSuspects().then(function(data){
$scope.suspects = data;
});
$scope.goToClues = function(){
$state.go('clues')
};
}]);
看起来像这样:
app.controller('AnswersCtrl', ['$http', '$log', '$ionicModal', '$state', 'SuspectService',
function($http, $log, $ionicModal, $state, SuspectService) {
var self = this;
self.suspects = [];
SuspectService.getSuspects().then(function(data){
self.suspects = data;
});
self.goToClues = function(){
$state.go('clues')
};
}]);
利用$ scope的代码可以工作,但利用这个(自我)的代码不起作用。
我尝试了几种变体而无法让它发挥作用。
答案 0 :(得分:1)
看起来你几乎就在那里,为了让这个语法在你的控制器中工作,你还需要更改你定义控制器的标记,如下所示:
<div ng-controller="AnswersCtrl as vm">
{{ vm.suspects[0].name}}
</div>
您可以在这里找到一个没有您定义的额外服务的工作示例:http://jsbin.com/zevaluside/3/edit
您还需要Angular 1.2或更高版本才能正常工作。