Ember.js 控制器已定义,但找不到
尝试从Ember.js 控制器已定义,但找不到,ember.js,Ember.js,尝试从nodeController:startEditing获取nodeEditController时,出现以下问题: Uncaught TypeError: Cannot call method 'set' of undefined 这是节点控制器: SettingsApp.NodeController = Ember.ObjectController.extend({ isEditing: false, startEditing: function () {
nodeController:startEditing
获取nodeEditController
时,出现以下问题:
Uncaught TypeError: Cannot call method 'set' of undefined
这是节点控制器
:
SettingsApp.NodeController = Ember.ObjectController.extend({
isEditing: false,
startEditing: function () {
debugger;
var nodeEditController = this.get('controllers.nodeEdit');
nodeEditController.set('content', this.get('content'));
nodeEditController.startEditing();
this.set('isEditing', true);
},
...
SettingsApp.NodeEditController = Ember.ObjectController.extend({
needs: ['node'],
startEditing: function () {
//debugger;
// add the contact and its associated phone numbers to a local transaction
var node = this.get('content');
var transaction = node.get('store').transaction();
transaction.add(node);
// contact.get('phones').forEach(function (phone) {
// transaction.add(phone);
// });
this.transaction = transaction;
},
...
这是NodeEditController
:
SettingsApp.NodeController = Ember.ObjectController.extend({
isEditing: false,
startEditing: function () {
debugger;
var nodeEditController = this.get('controllers.nodeEdit');
nodeEditController.set('content', this.get('content'));
nodeEditController.startEditing();
this.set('isEditing', true);
},
...
SettingsApp.NodeEditController = Ember.ObjectController.extend({
needs: ['node'],
startEditing: function () {
//debugger;
// add the contact and its associated phone numbers to a local transaction
var node = this.get('content');
var transaction = node.get('store').transaction();
transaction.add(node);
// contact.get('phones').forEach(function (phone) {
// transaction.add(phone);
// });
this.transaction = transaction;
},
...
错误发生在以下行中:
nodeEditController.set('content', this.get('content'));
因为:
var nodeEditController = this.get('controllers.nodeEdit');
返回未定义的
。为什么呢?NodeEditController
已定义 节点控制器缺少needs
属性:
SettingsApp.NodeController = Ember.ObjectController.extend({
needs : ["nodeEdit"],
isEditing: false,
startEditing: function () {
debugger;
var nodeEditController = this.get('controllers.nodeEdit');
nodeEditController.set('content', this.get('content'));
nodeEditController.startEditing();
this.set('isEditing', true);
},
...
NodeController缺少
needs
属性:
SettingsApp.NodeController = Ember.ObjectController.extend({
needs : ["nodeEdit"],
isEditing: false,
startEditing: function () {
debugger;
var nodeEditController = this.get('controllers.nodeEdit');
nodeEditController.set('content', this.get('content'));
nodeEditController.startEditing();
this.set('isEditing', true);
},
...