这里是一个非常简单的例子: JsFiddle
这里是MainCtrl
function MainCtrl($scope)
{
$scope.color = {};
$scope.colors = [
{ name: "red" },
{ name: "yellow" },
];
var newColor = $scope.color;
newColor.name = "blue";
$scope.colors.push(newColor);
$scope.selectedColor = newColor;
}
我有3个html格式:
- Mai nForm.Html
- AvailableColors.html(部分,上MainForm.html包埋与NG-包括)
- AddNewColor.html
MainForm.Html看起来像这样:
<div ng-app ng-controller="MainCtrl">
<div ng-include="'AvailableColors.html'">
</div>
AvailableColors.html看起来像这样:
<select ng-model="$parent.selectedColor" ng-options="color.name for color in colors">
<option value="" selected>Select Color ..</option>
</select>
<a href="#">Add New Color</a>
<br />
value is {{ selectedColor }}
在JsFiddle示例中,我试图模拟用户添加新颜色。我需要AvailableColors的ng模型有'$ parent'。因为它来自ng-include,并且不包含'$ parent',所以选择的选项将不在表单提交的范围内。
我的问题是,当用户添加它们时,我无法将新添加的颜色推送到AvailableColors.html。
有什么建议吗?
一注:我知道在JsFiddle中增加了新的颜色'blue',但那是因为在那个例子中确实没有ng-include。
很明显,当实际上有一个ng-include时,它不会出现,不足以刷新页面。