这是一个非常简单的例子: 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 表单:
- 主窗体.Html
- AvailableColors.html(部分,使用 ng-include 嵌入 MainForm.html)
- 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-model 来拥有“$parent”。由于它来自 ng-include,并且没有“$parent”,因此选择的选择将不在表单提交的范围内。
我的问题是当用户添加新添加的颜色时,我无法将它们推送到 AvailableColors.html。
有任何想法吗?
注意:我知道在 JsFiddle 中添加了新颜色“蓝色”,但那是因为该示例中确实没有 ng-include。
显然,当实际存在 ng-include 时,它不会出现,只是刷新页面。