gpt4 book ai didi

javascript - AngularJS ng-model 表单由 ng-repeat 驱动的 UI 模型描述数据如何?

转载 作者:行者123 更新时间:2023-11-28 09:00:21 24 4
gpt4 key购买 nike

JSFiddle http://jsfiddle.net/vorburger/hyCTA/3/展示了我对 AngularJS 的一个(有效的)“UI 建模”想法;请注意,表单实际上并不是在 HTML 模板中编码出来的,它是由 uimodel JSON 驱动的(它又描述了如何呈现/编辑数据模型):

<div ng-repeat="auimodel in uimodel">
<label>{{$index + 1}}. {{auimodel.label}}</label>
<input ng-model="datamodel[auimodel.model]" type="{{auimodel.type}}" />
</div>

问题是,一旦我的“模型”不是一个简单的属性,而是一个“路径”,那么我的方括号动态键“技巧”当然就不再起作用了..如(损坏的)所示)http://jsfiddle.net/vorburger/8CxRC/1/ JSFiddle。有什么建议可以做到这一点吗?

PS:或者像这样的东西是否一定需要一个完整的自定义指令,而不是迟早?如果可能的话,我宁愿不必这样做,以便尽可能简单地创建和维护此类 UI 模型“元模板”...

最佳答案

我刚刚想出了一种(但可能不是最好的?)方法来实现这一目标。请参阅 http://jsfiddle.net/vorburger/8CxRC/3/ - 基本上仍然基于我的方括号动态键“技巧”,但进行了一些预处理:

   for (var i = 0; i < $scope.uimodel.length; i++) {
var resolvedModelProperty = $scope.datamodel;
var remainingPath = $scope.uimodel[i].model;
while (remainingPath.indexOf('.') > -1) {
var nextPathSlice = remainingPath.substr(0, remainingPath.indexOf('.'));
resolvedModelProperty = resolvedModelProperty[nextPathSlice];
remainingPath = remainingPath.substr(remainingPath.indexOf('.') + 1);
}
$scope.uimodel[i].modelB = resolvedModelProperty;
$scope.uimodel[i].modelL = remainingPath;
}

关于javascript - AngularJS ng-model 表单由 ng-repeat 驱动的 UI 模型描述数据如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com