gpt4 book ai didi

javascript - Sails.js 将 key 和数据流式传输到 Angular

转载 作者:行者123 更新时间:2023-11-30 15:06:58 24 4
gpt4 key购买 nike

我有一个 Angular 前端,可将来自 sails 后端(使用 sails-mysql 适配器)的数据填充到 ui-grid 中。此数据集很大,在页面显示包含任何数据之前需要一段时间才能加载。

我有从 sails 启动和运行流式传输的基础知识:

findAllStream: function (req, res) {
Model.stream().pipe(res);
}

到目前为止,这会将每个单独的数据从模型流式传输到前端。我正在使用 angular-oboe 来使用这个流:

vm.myData = [];
var obj = {};
var count = 0;
Oboe({
url: '/api/model/findAllStream',
pattern: '*',
start: function(stream) {
// handle to the stream
vm.stream = stream;
vm.status = 'started';
},
done: function(parsedJSON) {
vm.status = 'done';
}
}).then(function() {
// promise is resolved
console.log('done');
}, function(error) {
// handle errors
console.log('error');
}, function(node) {
// node received
switch (count) {
case 0:
obj['id'] = node;
break;
case 1:
regObj['property'] = node;
break;
case 2:
regObj['function'] = node;
break;
}

if (++count === 3) {
vm.myData.push(regObj);
count = 0;
obj = {};
}
});

从本质上讲,数据 Node 似乎以相同的顺序出现,因此我只需跟踪我收到的 Node 数量并以此方式构建对象。然后,我将每个对象推送到一个数组中,以便在 uigrid 中使用。

例如,find() 返回的数据是:

[
{
id: 1,
property: foo,
function: bar
},
{
id: 2,
property: stuff,
function: things
}
]

这对 angular 和 uigrid 非常有用。但是对于流,我只会得到:

1
foo
bar
2
stuff
things

这并不理想,尤其是在模型发生变化的情况下。有没有办法发送 key 而不仅仅是值?或者从流中发送 JSON?像这样的东西:

  id: 1,
property: foo,
function: bar
id: 2,
property: stuff,
function: things

谢谢!

最佳答案

原来我用错了双簧管。我将匹配模式更改为“{id}”,一切正常。

Oboe({
url: '/api/model/findAllStream',
pattern: '{id}',
start: function(stream) {
// handle to the stream
vm.stream = stream;
vm.status = 'started';
},
done: function(parsedJSON) {
vm.status = 'done';
}
}).then(function() {
// promise is resolved
console.log('done');
}, function(error) {
// handle errors
console.log('error');
}, function(node) {
// node received
vm.gridOptions.data.push(node);
});

关于javascript - Sails.js 将 key 和数据流式传输到 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com