我的 ion-content 中有两个输入字段,它们都附加了一个 ng-model。然后在我的 ion-footer 中,我有一个 ng-click,我在其中调用了一个函数并传入了两个 ng-model。
当我在 ion-content 中有 ng-click 时,这一切都很好,但是当我将它移动到页脚时,我传递给函数的两个参数没有定义。
那么这是否意味着 ion-content 和 ion-footer 具有不同的 $scope ?即使它们在同一个文件中并且具有相同的控制器??
我的 ion-content 中有两个输入字段,它们都附加了一个 ng-model。然后在我的 ion-footer 中,我有一个 ng-click,我在其中调用了一个函数并传入了两个 ng-model。
当我在 ion-content 中有 ng-click 时,这一切都很好,但是当我将它移动到页脚时,我传递给函数的两个参数没有定义。
那么这是否意味着 ion-content 和 ion-footer 具有不同的 $scope ?即使它们在同一个文件中并且具有相同的控制器??
我相信ion-footer
&ion-content
创建了新的子作用域,该子作用域在原型上是从当前作用域继承而来的。下面的 ionic 代码将为您更好地说明它的内部工作原理,scope: true,
它负责创建一个新的子作用域。
代码
.directive('ionContent', [
'$parse',
'$timeout',
'$ionicScrollDelegate',
'$controller',
'$ionicBind',
function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) {
return {
restrict: 'E',
replace: true,
transclude: true,
require: '^?ionNavView',
scope: true, //<-- this creates a prototypically inerherited scope
template:
'<div class="scroll-content">' +
'<div class="scroll"></div>' +
'</div>',
您需要使用.
注释来解决您的问题
例如。
如果您使用变量作为原始类型
$scope.volume = 5
然后你需要使用:
$scope.data = { 'volume' : 5}
pankajparkar 在评论中对答案的解释:
离子含量指令有了新的范围。它使用点符号工作(在处理范围继承时很重要)
这就是为什么它适用于 ng-model="data.model1
请参阅: