我使用的是控制器,我想知道为什么在这种情况下,var vm = this
不起作用(我的猜测是它对离子相关的东西不起作用):< / p>
function TutorialCtrl($scope, $state, $ionicSlideBoxDelegate, $ionicSideMenuDelegate) {
var vm = this;
vm.title = 'yo';
vm.next = function() {
$ionicSlideBoxDelegate.next();
};
// Called each time the slide changes
vm.slideChanged = function(index) {
vm.slideIndex = index;
};
}
它适用于$ scope,ofcourse。我的绑定实际上适用于我的测试:vm.title
(它在我的视图中正确显示)。
无法找到相关信息,有人可以解释一下吗?我希望摆脱所有的范围,但有时我不能。谢谢 !
编辑:我发现了我的错误!在我看来,我忘了添加vm。在我的方法上...当然它无法奏效! :P
答案 0 :(得分:0)
我也更喜欢使用控制器作为语法并在控制器中删除对$scope
的引用(最终更新到Angular2及更高版本)。我喜欢使用控制器实现控制器的方式类似于上面所描述的几个调整。如您所见,不再需要导入$scope
,这应该使您的模板中的功能可用。
function TutorialCtrl($state, $ionicSlideBoxDelegate, $ionicSideMenuDelegate) {
var vm = {};
vm.title = 'yo';
vm.next = function() {
$ionicSlideBoxDelegate.next();
};
// Called each time the slide changes
vm.slideChanged = function(index) {
vm.slideIndex = index;
};
return vm;
}
答案 1 :(得分:0)
我发现了我的错误:在我看来,我忘了将vm绑定到我的方法上(即
:vm.mymethod
)。显然它无法正常工作....现在一切都好。