$parent not working in ng-include angular
本问题已经有最佳答案,请猛点这里访问。
我正在使用
1 2 | <button class="btn btn-small" data-ng-if="trItem.skuId==217" data-ng-click="addDetails()">Add Details</button> |
1 2 3 | $scope.addDetails=function(){ $scope.addBillDetails=true; }; |
test.html和testcrl
1 2 | <button type="button" class="btn red" data-ng-click="cancel()">Cancel</button> </form> |
1 2 3 4 | $scope.cancel=function(){ alert("cancel"); $scope.$parent.addBillDetails=false; }; |
这是因为
让我们从为什么
1 2 3 4 5 6 7 8 | //ng-controller="parentCtrl" `$scope.addBillDetails` | | ng-if | |- ng-inlcude | |- ng-controller="testCtrl" ($scope.$parent.$parent.$parent.addBillDetails) |
通过查看上图,如果您想修改父级
在这种情况下,首选使用对象(引用类型变量)或在使用控制器(控制器版本)时使用
建议阅读"AngularJS中作用域原型/原型继承的细微差别是什么?"
HTML
1 2 3 | {{model.addBillDetails}} <button class="btn btn-small" data-ng-if="trItem.skuId==217" data-ng-click="addDetails()">Add Details</button> |
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 | .controller('parentCtrl', function($scope) { $scope.model = {}; $scope.model.addBillDetails = true; $scope.addDetails = function() { $scope.model.addBillDetails = true; }; }) .controller('testCtrl', function($scope) { $scope.cancel = function() { alert("cancel"); $scope.model.addBillDetails = false; }; }) |
预览