我具有一些功能,开发人员可以在其中添加自定义Angular视图,在该视图中可以将属性绑定到$ scope.settings对象。单击保存按钮时,$ scope.settings对象将转换为JSON并保存到数据库。这样的结果将是:
{
"name": "bob",
"age": "25"
}
只要我添加元素,<input type="text" ng-model="settings.name" />
一切都会按预期进行。
但是,现在我想添加这样的指令:
<umb-property property="property in properties">
<umb-editor model="property"></umb-editor>
</umb-property>
使用以下代码:
$scope.properties = [
{
label: 'Name',
alias: 'name',
view: 'textbox',
value: $scope.settings.name
},
{
label: 'Age',
alias: 'age',
view: 'number',
value: $scope.settings.age
}
];
“ editor”指令基于“ view”属性在适当的位置加载视图。意见是第三方的。编辑器将加载到对话框中。提交设置对话框后,以下代码行会将设置转换为JSON:
$scope.dialog = {
submit: function (model) {
var settingsJson = JSON.stringify(model.settings);
},
close: function (oldModel) {
//
}
};
在这种情况下,我无法将$ scope.settings解析为JSON,因为$ scope.settings.name不再更新。$ scope.editorModel.value已更新。
如何将$ scope.editorModel.value绑定到$ scope.settings.name?我不想以必须使用编辑器模型中的相应值更新所有$ scope.settings值的解决方案作为结局,因为我想支持将$ scope.settings转换为JSON值的动态方式数据库。
例如,我不想做:
$scope.settings.name = $scope.properties[0].value
使用属性访问器:
for (var i=0; i<$scope.properties.length; i++) {
$scope.settings[$scope.properties[i].alias] = $scope.properties[i].value;
};
的HTML
<div ng-repeat="prop in properties">
<input ng-model="prop.value">
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句