我有一个语言表,一个包含自定义表名的表和一个包含翻译的表。 现在我想在所有语言中插入一个新表。在我的控制器中,我询问了语言表中的元素数量并生成了视图:
var countLanguages = function () {
vm.languages = configService.getGlobalLanguageList();
};
和视图:
<ul ng-repeat="language in vm.languages">
<h3>{{translations}}</h3>
<div>
<label for="EditLanguageLabel" ng-bind="language.label"></label>
<input type="text" ng-model="translations" id="EditLanguageLabel" required />
</div>
</ul>
但是如何获取所有字段并使用语言的id和自定义表的id将数据保存在翻译表中? 无法在Controller中获取$ scope.translations,因为每个ng-repeat都有自己的范围,对吧?
vm.save = function ()
{
var test = $scope.translations;
};
解决此问题的正确方法是什么。 一种可能的解决方案是加载空的自定义表对象并添加语言。我认为肯定会有更好的解决方案。
答案 0 :(得分:0)
我假设您想要更改语言的标签。如果是这样,您需要做的就是将输入的ng-model设置为语言变量:
<input type="text" ng-model="language.label" id="EditLanguageLabel" required />
这会将输入的值绑定到语言的标签上,并且无论何时调用得到language.label字段,它都将是输入中的版本。
此外,当循环(例如:language.label)将在范围内时,ng-repeat不会创建自己的范围内的任何内容,而这些范围不在您创建的对象上,因此您的翻译实际上是$ scope。翻译。如果您希望每种语言都有自己的翻译,则需要将该变量添加到返回的对象数组中,并将模型设置为:
<input type="text" ng-model="language.translations " id="EditLanguageLabel" required />
上面的代码将使用输入中的值填充语言对象上的翻译变量。