【发布时间】:2013-09-27 07:29:47
【问题描述】:
我有一些部分模板,其中位置会根据用户通过 ng-click 的操作进行更改:
<div ng-include="contentUrl"></div>
<button ng-click="contentUrl = '../partials/testScriptForm.html'">Add Test Script</button>
这很好用,除非我上面的按钮在部分本身的内部,所以如果 testScriptForm.html 有一个按钮:
<button ng-click="contentUrl = '../partials/testScriptCase.html'">Add Test Case</button>
然后什么都没有发生。
这似乎是由于 ng-include 获得了一个新的(继承但不共享?)范围。
我想不通的是如何让包含的模板(部分)改变它自己的位置。
我确实尝试了一个函数来更改 $scope.$parent.contentUrl,它似乎确实发生了变化,但没有“传播”这些更改。
在咖啡脚本中:
$scope.changeParentLocation = (location) ->
$scope.$parent.contentUrl = location
还尝试了 $scope.$apply() 和 $scope.$parent.$apply() 并得到错误:
错误:[$rootScope:inprog] http://errors.angularjs.org/1.2.0rc1/$rootScope/inprog?p0=%24apply
也许我只是误用了包含...
【问题讨论】:
-
尝试使用对象
"content.Url='someFile.html'"而不仅仅是"contentUrl='someFile.html'" -
谢谢!我试图弄清楚为什么 ng-click 无法更改包含的模板,并且永远不会猜到这是由于新范围..