我有1个文件(这是我的服务文件@ angular):
var columnNames = [];
var rowData;
return {
setRowData: function (data) {
rowData = data;
},
getRowData: function () {
return rowData;
},
getColumn: function () {
return columnNames;
},
addColumn: function (col) {
columnNames.push({
name: col,
field: col
});
},
// etc
在另一个文件中,我在事件触发时调用set方法(控制器文件):
var onParamComplete = function (response) {
demoUtils.addColumn(response.data);
};
var onRunComplete = function (response) {
// response.data is an array
demoUtils.setRowData(response.data);
};
最后在第二个控制器中,我将其设置为范围,以便我可以在数据绑定模板中查看该值:
$scope.r = demoUtils.getColumn();
$scope.q = demoUtils.getRowData();
我在
的HTML文件中显示它{{ r }}
{{ q }}
由于某种原因,getColumn()方法的值正常工作但我的getRowData()方法不正常。
我调试了onRunComplete()中的值,发现分配正确,但我的getRowData()没有看到更新。当在那里放置断点时它也没有执行,但由于某种原因,$ scope.r正在改变,并且当它们的两个赋值断点都没有触发时,$ scope.q不是。
答案 0 :(得分:0)
首先尝试初始化rowData变量
var columnNames = [];
var rowData = [];
如果您创建了plunkr示例,那么帮助您也会更容易......
你也可以试试angular.copy
setRowData: function (data) {
rowData = angular.copy(data);
},