离子含量和离子脚注有不同的范围

我的离子内容中有两个input字段,它们都附带了一个ng模型。 然后在我的ion-footer里面,我有一个ng-click,在这里我调用了一个函数,并通过了两个ng模型。

当我在离子内容中进行ng键单击时,这一切都工作正常,但是当我将它移动到页脚时,我将传递给该函数的两个参数定义为undefined。

那么这是否意味着ion-content和ion-footer有不同的范围? 即使他们在同一个文件,并具有相同的控制器?

我相信ion-footerion-content会创造一个新的子范围,从现在的范围开始是原型的 。 下面的离子代码会给你更好的说明,它是如何在内部工作的, scope: true,负责创build一个新的子范围。

 .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>', 

你需要使用. 注释将解决您的问题

例如。

如果你正在使用像原始variables

 $scope.volume = 5 

那么你需要使用:

 $scope.data = { 'volume' : 5} 

angular度原型范围的inheritance

pankajparkar在评论中回答的解释:

离子含量指令有其新的范围。 它使用点符号(在处理范围inheritance时很重要)

这就是为什么它与ng-model =“data.model1

请参阅:

关于作用域的AngularJS文档

Eggheadvideo