离子含量和离子脚注有不同的范围
我的离子内容中有两个input字段,它们都附带了一个ng模型。 然后在我的ion-footer里面,我有一个ng-click,在这里我调用了一个函数,并通过了两个ng模型。
当我在离子内容中进行ng键单击时,这一切都工作正常,但是当我将它移动到页脚时,我将传递给该函数的两个参数定义为undefined。
那么这是否意味着ion-content和ion-footer有不同的范围? 即使他们在同一个文件,并具有相同的控制器?
我相信ion-footer
& ion-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