簡體   English   中英

Angular 1.5單選按鈕模型

[英]Angular 1.5 Radio Button Model

我的頁面上有一個單選按鈕,其ng-value設置為“ answer”對象。 該變量的模型將設置為從屬關系數組的特定元素。 數據的結構如下所示:

var user = { affiliations: [ {question: ..., answers: ... }, ... ] }

這樣,每個“從屬關系”都有一個問題和一個或多個答案。 我正在嘗試在AngularJS中為此創建一個UI,如下所示:

<form name='affiliationsForm'>
<div ng-repeat="(i, affiliation) in DS_OrgAffiliations">
    <h6>{{affiliation.question.name}}</h6>
    <div ng-if="affiliation.question.questionType=='MultipleAnswer'">
        ...
    </div>

    <div ng-if="affiliation.question.questionType=='SingleAnswer'">
        <label ng-repeat="answer in affiliation.answers">
            <div>
                <input type="radio" ng-model="$parent.DS_User.affiliations[i].answers" name="{{affiliation.question.name}}" ng-value="answer"> {{answer.answer}} </input>
            </div>
        </label>
    </div>

</div>
<button data-ng-click="submitAffiliations()">save</button>

在我的模型上,這實際上效果很好。 我有一些膠水代碼,處理選擇題和單個問題之間的差異,如果我對此表格進行更改,該模型將反映出更改而沒有問題。

問題在於, 在頁面上初始化表單時,永遠不會檢查正確的單選按鈕。 該模型將在“ answers”屬性內顯示一個answer對象,但是該表單不反映該值。 此外, 選擇一個單選按鈕會為我們的模型分配正確的答案,如果我選擇應該使用的單選按鈕,則該模型似乎不會更改。

我認為正在發生的事情是,正在使用正確的“答案”對象的深層副本而不是淺層副本來初始化模型,並且盡管對象具有相同的內容,但是引用不同也會導致問題。

這個對嗎? 為了檢驗這個理論,我這樣做:

 <input type="radio" ng-model="$parent.DS_User.affiliations[i].answers" name="{{affiliation.question.name}}" ng-value="answer" ng-checked="$parent.DS_User.affiliations[i].answer.answer==answer.answer"> {{answer.answer}} </input>

請注意,ng-checked屬性正在檢查答案的成員以確保相似性。 不幸的是,這也無法將頁面加載時的默認單選按鈕默認為默認值。

有什么見解嗎? 我已經花了大約一個半小時的時間來玩這個游戲,我的引用解釋似乎也很可能,但是由於ng-checked屬性使我失敗了,所以我一直找不到合適的線程。

因此,我花了更多時間來做一個簡單的小提琴。 事實證明,Angular在以ng-value存儲對象時僅考慮引用,因此我的建議實際上是正確的。 在存儲基元時,可以使用不同的值初始化模型,但是在存儲對象時,您需要存儲對實際模型條目的引用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM