У меня есть контроллер, который определяет:
- некоторые свойства, которые управляют тем, как выглядит мой пользовательский интерфейс
- метод, который может быть вызван для изменения этих свойств
У меня также есть директива, которая получает метод контроллера в качестве параметра, чтобы иметь возможность его вызывать.
После angular.dart v0.9.9. никаких изменений в свойствах контроллера больше не обнаруживается. Поскольку я использую область только неявно, через свойства контроллера, я не уверен, должен ли/как я должен использовать «scope.context», упомянутый в разделе «критические изменения» angular.dart 0.9.9.
Как я могу это исправить?
[Обновить]
Ниже приведен код:
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>
основной дротик
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());
}
}
ng-click="ctrl.goRight()"
вместо атрибутаwhenclicked
. Я могу воспроизвести, но понятия не имею о причине. - person Günter Zöchbauer   schedule 17.03.2014