加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 绑定到Angular Dart中的Map的数据

发布时间:2020-12-17 07:07:42 所属栏目:安全 来源:网络整理
导读:我正在尝试实现检查复选框列表中的多个项目的功能.我使用Map来存储数据及其选定/未选中状态. ListString fruits = [ {'fruit': 'apple','selected': true},{'fruit': 'banana',{'fruit': 'kiwi','selected': false}]; 复选框最初显示正确呈现的选中/未选中状
我正在尝试实现检查复选框列表中的多个项目的功能.我使用Map来存储数据及其选定/未选中状态.

List<String> fruits = [
  {'fruit': 'apple','selected': true},{'fruit': 'banana',{'fruit': 'kiwi','selected': false}
];

复选框最初显示正确呈现的选中/未选中状态,但是当我切换复选框的选中状态时,水果图不会更新.我怎样才能在这里正确创建双向绑定?

这是我的.dart文件:

import 'package:angular/angular.dart';

@NgDirective(
  selector: '[my-controller]',publishAs: 'ctrl'
)
class MyController {
  List<String> fruits = [
    {'fruit': 'apple','selected': false}
  ];
}

main() {
  ngBootstrap(module: new Module()..type(MyController));
}

这是视图标记:

<!DOCTYPE html>
<html ng-app>
  <body>
    <div my-controller>            
      <ul>
        <li ng-repeat="item in ctrl.fruits">
          {{item['fruit']}}
          <input type="checkbox" ng-model="item['selected']" />
        </li>
      </ul>
    </div>

    <!-- THIS DOES NOT UPDATE WHEN THE CHECKBOXES ARE TOGGLED -->
    {{ctrl.fruits}}

    <script type="application/dart" src="main.dart"></script>
    <script type="text/javascript" src="packages/browser/dart.js"></script>
  </body>
</html>

解决方法

它没有更新的原因是因为ctrl.fruits正在引用.由于水果列表引用永远不会改变,绑定永远不会改变.

这是一个简单的修复:

{{ctrl.fruits | json}}

通过过滤器运行它会强制在每个摘要中对象进行JSON化.

遗憾的是,没有简单的方法来深入观察对象,因为计算复杂性可能是无限的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读