dart - 角度变化.dart变化检测方法

标签 dart angular-dart

我有一个 Controller 定义:

  • 一些控制用户界面外观的属性
  • 可以调用来更改这些属性的方法

我还有一个指令,它接收 Controller 的方法作为参数以便能够调用它。

在 angular.dart v0.9.9 之后。不再检测到 Controller 属性的任何更改。由于我仅通过 Controller 的属性隐式使用范围,因此我不确定是否/如何应该使用 Angular.dart 0.9.9 的“重大更改”部分中提到的“scope.context”。

我该如何解决这个问题?

[更新]

下面是一些代码:

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <title>test</title>
  </head>
  <body ng-cloak ng-controller="app-ctrl">
    <div>selections: {{ ctrl.selections }}</div>
    <div class="test-click" whenclicked="ctrl.goRight()">click</div>
    <script type="application/dart" src="/test/web/main.dart"></script>
    <script src="packages/browser/dart.js"></script>
  </body>
</html>

main.dart

library test;
import 'package:angular/angular.dart';
import '../lib/src/app_ctrl.dart';
import '../lib/src/click_dir.dart';
void main() {
  ngBootstrap(module: new TestModule());
}
class TestModule extends Module {
  TestModule() {
    type(AppCtrl);
    type(TestClickDir);
  }
}

app_ctrl.dart

library app;
import 'package:angular/angular.dart';
/** AppCtrl */
@NgController(selector: '[ng-controller=app-ctrl]', publishAs: 'ctrl')
class AppCtrl {
  List selections;
  AppCtrl() {
    selections = ['a','a'];
  }
  void goRight() {
    selections.add('a');
  }
}

click_dir.dart

library clickable;
import 'package:angular/angular.dart';
import 'dart:html';
/** TestClickDir */
@NgDirective(selector: '.test-click', map: const {
  'whenclicked': '&click'
})
class TestClickDir implements NgAttachAware {
  Function click;
  Element self;
  TestClickDir(Element el) {
    self = el;
  }
  void attach() {
    self.onClick.listen((e) => click());
  }
}

最佳答案

我猜这是由于优化造成的,因为观看收藏的成本很高。不过也可能是一个错误。

我想您只是将其用于调试目的? 可以通过以下方式轻松实现略有不同的结果:

{{ ctrl.selections | json }} // prints: ["a","a","a","a","a","a","a"]

刚刚发现这样效果更好

{{ ctrl.selections.toString() }} // prints: [a, a, a, a, a, a, a]

关于dart - 角度变化.dart变化检测方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22421300/

相关文章:

server - AngularDart-上传到共享托管服务器

dart - 如何使用 flutter 编写按下双后退按钮以退出应用程序

dart - 有没有办法在 dart Node API 中访问伪属性样式?

ios - 如何在 Flutter 中的原生 iOS 代码中使用打印方法?

javascript - 检测输入元素的焦点丢失,而不是 onBlur

dart - 在组件之间传递模型

dart - 如何在 dart 中制作动态 getter/setter

dart - 如何在我的 AngularDart 5 测试中使用 KeyCode 触发 KeyDown 事件?

angular - 调用$(document).foundation();在基金会中多次

angular - 强制 Angular 不对某些 @Input 进行更改检测