【问题标题】:Angular data binding object in value attribute of option in select选择中选项的值属性中的角度数据绑定对象
【发布时间】:2023-04-10 13:41:02
【问题描述】:

我有一个 select 项目,我在 option 中使用 ng-repeat 填充它。我使用 Angular 的数据绑定将所选项目的值设置为我的模型。但 由于某种原因,json 字符串中的 " 现在变成了 \" 。因此,我稍后在我的代码中无法再访问 json 字符串中的属性。

<select id="concepts" class="form-control"     ng-model='usecase.concepts'  multiple title='-Select one or more primary concepts-' data-width="auto" >
        <option  ng-repeat='concept in concepten' value='{{concept}}'>{{concept.name}}</option>
</select> 

概念 JSON 字符串如下所示:

{"name":"Concept1","description":"beschrijving"}

但是当我在选择中选择一个项目时,它看起来像这样:

{\"name\":\"Concept1\",\"description\":\"beschrijving\"}

稍后我想用所选概念的名称属性填充一些下拉列表,但由于反斜杠,我无法再访问名称属性。 我该如何解决这个问题,以便value 不会在 JSON 字符串中添加反斜杠?

备注: 使用ng-options 而不是ng-repeat 可以完美运行,但我正在尝试使用nya-bootstrap-select,但我无法使用ng-options 标签

【问题讨论】:

  • 尝试使用 angular.fromJson();将 json 解析为 javascript 对象 - 那么您应该能够正确访问它
  • @deolectrix 是否可以在选择对象中进行此解析?还是我应该在之后解析模型?
  • 您应该事先尝试解析 json,因此当您将其分配给 $scope.usecase.concepts 时,您可能会遇到这样的情况。 $scope.usecase.concepts = [], $scope.usecase.concepts.push(angular.fromJson({"name":"Concept1","description":"beschrijving"}));

标签: angularjs select ng-repeat


【解决方案1】:

我不建议将整个 JSON 字符串作为值放在选择中。如果您的描述包含更多文本/html,您可能会遇到麻烦。 在更改处理程序中设置选定的概念可能会更好,例如:

ng-change="updateSelectedConcepts()"

http://plnkr.co/edit/4ETrFlM0HrftAobTyvtS?p=preview

在 plunkr 中您可以看到,usecase.concepts 包含选定的概念对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2018-11-22
    • 2016-06-23
    • 2019-02-16
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多