tur*_*tle 2 javascript backbone.js
我试图从其子视图触发父视图的事件.但似乎父视图的事件没有被触发.
以下是我的代码示例:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
<script>
MySubView = Backbone.View.extend({
id : "MySubView",
initialize: function() {
console.log("pro1");
this.trigger("testGo", "test");
}
});
MyView = Backbone.View.extend({
id : "MyView",
initialize: function() {
console.log("pro");
this.subview = new MySubView();
this.subview.listenTo("testGo", this.addFoo, this);
},
addFoo: function() {
console.log("ok");
alert("ok");
}
});
new MyView();
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我试图从谷歌搜索找到的许多解决方案中得到提示,但似乎我在某个地方受到了打击.我发现的一些选项是:
小智 5
问题是你使用listenTo错了.
anObject.listenTo(anotherObject, 'forSomeEvent', function () { console.log('do something'); });
Run Code Online (Sandbox Code Playgroud)
所以,在你的情况下,你应该这样做:
MyView = Backbone.View.extend({
id : "MyView",
initialize: function() {
console.log("pro");
this.subview = new MySubView();
this.listenTo(this.subview, 'testGo', this.addFoo);
},
addFoo: function() {
console.log("ok");
alert("ok");
}
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
归档时间: |
|
查看次数: |
5392 次 |
最近记录: |