我一直在尋找使用Angular Schema Form來爲我的項目定義所有的表單,但是對我來說大量的突出之處在於,當我們定義一個select/drop- down元素,那麼必須在JSON中指定值。這不會讓我感到非常靈活,因爲我希望從角度控制器/工廠中檢索這些值,因爲它們目前在示波器上可用。指定Angular Schema Form使用範圍選擇下拉選項
我已經做了相當多的搜索如何繞過這一點,但還沒有找到一個明確的解決方案或任何工作對我來說,所以我決定嘗試擴展選擇自己並添加映射到schemaFormDecoratorsProvider
。
我遵循Extending Schema Form的文檔,現在有一個定義我的Select控件的HTML代碼片段,當我在我的JSON模式中定義它時,這個代碼片段正在呈現。我希望能夠做的是通過JSON模式部分地指定ng-options屬性。我試圖做到這一點,但似乎沒有導致選擇選項被渲染。
這是我的選擇控制的部分:
<select ng-model="$$value$$"
ng-model-options="form.ngModelOptions"
sf-changed="form"
schema-validate="form"
ng-options="item.value as item.name for item in form.titleMap"
ng-disabled="form.readonly">
</select>
,其中n選項定義,我希望能夠到無論是在我的JSON指定titleMap,它被解析爲對象在我的範圍和我可以在我的JSON中傳遞集合的名稱,然後通過form.titleMap
當前的位置。
有人有這樣的經驗嗎?對我來說似乎是一個相當合理的要求,但在網上找不到有關它的很多幫助。
非常感謝。
您是否嘗試過將數組傳遞給默認select元素的'tileMap'屬性?它應該支持動態賦值......文檔建議可以提供一個對象:「一個titleMap可以被指定爲一個對象(與JSON形式相同),其中propery是值,該屬性的值是名稱或名稱 - 值對象列表,後者在內部使用,並且是要使用的推薦格式。請注意,將titleMap定義爲對象時,值將限制爲字符串,因爲對象的屬性名稱始終是字符串。 「 – Claies
我剛剛閱讀了文檔的這一部分,但我仍然不明白我如何引用Angular Scope中存在的東西。那裏的例子在那裏被定義爲JSON。 你是說我應該能夠將我的titleMap定義爲 ''titleMap「:agenciesArray' 或者什麼? – Glamdring
JSON只是一個普通的對象。你應該能夠在創建表單時使用'titlemap:$ scope.myTitlemapObject'。您似乎也可以利用字符串值中的「{{}}」進行插值,但是我沒有機會嘗試如何實現。 – Claies