绑定到JSON的Angularjs将值设置为未定义

时间:2016-01-29 10:35:07

标签: javascript angularjs json

在一些自定义指令中,嵌套绑定有一个非常棘手的问题。我有一个看起来有点像这样的JSON结构;

{
 survey:
    questions:[
        {
        text:'Question 1',
        answers:[
            {
            text:'Answer 1'
            },
            ..        
        ]
        },
        ...
    ]
}

每项调查都有很多问题,每个问题都有很多答案。我已经为调查表格和问题创建了指令。问题指令具有嵌套的答案指令。指令被循环并绑定到JSON。 HTML看起来像这样:

页面;

<div>
    <survey-form></survey-form>
    <div ng-repeat="question in survey.questions">
         <question-form></question-form>
    </div>
</div>

问题形式指令;

<div>
     <h1>{{question.title}}</h1>
     <div ng-repeat="answer in question.answers">
          <answer-form></answer-form>
     </div>
 </div>

这一切都很好,我在控制台中没有错误。但是,只要对表单输入的绑定完成,看似随机的文本属性就会在底层JSON中设置为未定义。如果我绑定到任何可编辑的元素,一切都是预期的。此外,这不适用于嵌套JSON中的每个元素 - 我看到一些文本值设置为undefined,其他文本值保留在源JSON中。

任何人都可以解释这个问题吗?它真的很烦人,我想可能是Angular中的一个错误..

提前致谢

1 个答案:

答案 0 :(得分:0)

它可以像question.text一样简单而不是question.title吗?我在你的JSON中注意到它的文字。如果不是这样,你可以提供答案的指令信息,并可能设置一个jsfiddle / plunkr来表明它的发生。