我正在构建一个 AngularJS 应用程序,但遇到了一个问题。我一直在玩这个框架,但我还没有看到类似这样的文档或任何示例的文档。我不确定要走哪条路,指令,模块,或者我还没有听说过的东西......
问题:
基本上,我的应用程序允许用户添加对象,我们将在此示例中说跨度,这些对象具有某些可编辑的属性:高度和关联的标签。而不是每个跨度都有自己专用的高度和标签操作输入字段,我想使用一组能够控制跨度对象的所有迭代的输入字段。
所以我的大约。工作代码是这样的:
<span ng-repeat="widget in chart.object">
<label>{{widget.label}}</label>
<span id="obj-js" class="obj" style="height:{{widget.amt}}px"></span>
</span>
<button ng-click="addObject()" class="add">ADD</button>
<input type="text" class="builder-input" ng-model="chart.object[0]['label']"/>
<input type="range" class="slider" ng-model="chart.object[0]['amt']"/>
上面的代码将允许用户添加新对象,但 UI 显然是硬编码为数组中的第一个对象。
所需功能:
当用户单击一个对象时,它会更新输入的 ng-model 的值以绑定到单击的对象。因此,如果单击“object_2”,输入的 ng-model 会更新以与 object_2 的值同步。如果用户点击“object_4”,它会更新输入的 ng-model,你就明白了。本质上是智能用户界面。
我考虑过编写一个名为“sync”的指令属性,它可以将 ng-model 状态推送到绑定的 UI。我已经完全创建了一个名为<object>
并在控制器中构造它们的新标签。而且我考虑过使用ng-click="someFn()"
它来更新输入字段。所有这些都是“可能性”,各有优缺点,但我想在我开始做某事或走错路之前,我会询问社区。
有没有人这样做过(如果有,例子)?如果不是,那么执行此操作的最干净的 AngularJS 方法是什么?干杯。