在state中配置controller问题
我在state里面配置了controller: home然后在home里面有一个input ng-mode为a 在JS中的controller中的$scope.a 并不能获取到a的值。打印出来是undefined.但是如果我不在state里面配置controller,直接把controller写在ion-content上,a的值能获取。(但我不能这么写,这样写的话不能用到$ionicView.beforeEnter方法)
.state("home", {
url: "/home",
templateUrl: "templates/home.html",
controller:"home"
})
.controller("home",["$scope","$rootScope","data","$ionicLoading","$state","$ionicHistory",function($scope,$rootScope,data,$ionicLoading,$state,$ionicHistory){
$scope.$on('$ionicView.beforeEnter', function() {
$ionicLoading.show({
template: '加载中...'
});
$scope.a = function(){
console.log($scope.asd);
}
});
}])
<ion-view view-title="...">
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button>
</ion-nav-buttons>
<ion-content>
<input type="text" ng-model="asd">
<button ng-click="a()">aaa</button></ion-content></ion-view>
首先需要在controller 中定义 $scope.asd='' 然后才可以获取到这个值 跨平台移动开发 发表于 2015-11-26 14:45
首先需要在controller 中定义 $scope.asd='' 然后才可以获取到这个值
我在input上不是已经有了ng-model="asd"吗? 只是一个input,在ng中的双向绑定嘛,input输入值,然后$scope.asd获取,这是ng的基本双向绑定? 怎么在这里就不行了?
如果按照你说的先定义的话,肯定打印出来就是定义的值,而不是input输入的值。
以为是自己代码影响到了,我重新建了一个项目,就用ionic最开始的文件做了下试验。
.controller('DashCtrl', function($scope) {
$scope.asd = "";
$scope.a = function(){
console.log($scope.asd);
}
})
tab-dash.html里面的
<input type="text" ng-model="asd" ng-change="a()">
最后打印依然是空,我是哪里写错了吗? 我在写其他ng项目的时候这样写是ok的。 百度了一下午,终于在https://www.zhihu.com/question/36960249 这里找到解决办法,有遇到的可以看看哈。
页:
[1]