我有范围变量的问题。这是案例;
案例1:使用ng-controller标签在html中指定控制器名称。在这种情况下,alert打印输入变量。
<ion-view view-title=“TEST”>
<ion-content ng-controller=‘TestController’>
<input name="aaa" id="dsds" ng-model="aaa" type="text"/>
<h3>{{aaa}}</h3>
<button class="button" ng-click=“test()”>Test</button>
</ion-content>
</ion-view>
//CONTROLLERS//
$scope.test = function(sql){
var x = $scope.aaa;
alert(x);
};
案例2:当我在配置中定义控制器时,以下警告“未定义”
state('app.test’, {
url: ‘/test’,
views: {
'menuContent': {
controller: 'TestController',
templateUrl: 'templates/programs/test.html'
}
}
})
<ion-view view-title=“TEST”>
<ion-content>
<input name="aaa" id="dsds" ng-model="aaa" type="text"/>
<h3>{{aaa}}</h3>
<button class="button" ng-click=“test()”>Test</button>
</ion-content>
</ion-view>
//CONTROLLERS//
$scope.test = function(sql){
var x = $scope.aaa;
alert(x);
};
在案例2中,如果我用ng-model =“$ parent.aaa”更改ng-model =“aaa”,则alert会获取值。
所以我的问题是在应用程序配置部分给出控制器名称和ng-controller属性
之间的区别是什么由于
答案 0 :(得分:0)
此情况仅适用于Ionic。因为Ionic是基于Angular Directive的框架。所有指令都已经自我控制器所以如果你声明 ng-model =“aaa”那么它的变量与自控制器$范围变量绑定。
你也可以在github上看到Ionic并找到 .directive('ionView'你看到内部指令已经定义了一个控制器。我认为这是可能的条件。