我正在使用Angular Formly,如果模型是范围的值,就像字符串一样,效果很好:
{ key: 'name', type: 'input' }
问题是我使用更精细的对象来处理模型,使用"controller as"语法并将名称作为用户对象的一部分:
vm.user = {name: 'john', lastname: 'doe'}
当然,关键是:
{ key: 'user.name', type: 'input' }
(通常vm以形式表示法从键中取出).
问题是Formly使用括号表示法来处理模型:
template = ''
处理时,吐出此输出:
当然,模型没有用户对象和空字段显示.
所以,我的问题是:当它是一个更复杂的对象时,如何将适当的对象传递或链接到形式模型?
提前致谢.
可以在表单和字段级别定义模型,因此很容易将对象图中的任何属性用作表单字段.一个例子:
标记:
JavaScript的:
angular .module('myApp', ['formly', 'formlyBootstrap']) .controller('MyCtrl', ['$scope', function($scope) { var vm = this; vm.data = { user: { name: 'john', lastname: 'doe' }, extra: 'extra' }; vm.userFields = [ { model: vm.data.user, key: 'name', type: 'input', templateOptions: { type: 'text', label: 'Name', placeholder: 'Enter name' } }, { model: vm.data.user, key: 'lastname', type: 'input', templateOptions: { type: 'text', label: 'Lastname', placeholder: 'Enter lastname' } }, { key: 'extra', type: 'input', templateOptions: { type: 'text', label: 'Extra', placeholder: 'Enter extra' }} ]; }]);
小提琴:http://jsfiddle.net/masa671/c37gxg3h/