节点 Webkit / Angular / 更改模型

Node Webkit / Angular / Change Model

对于 node webkit 的新手、Angular 的新手、Web 开发中的一切新手提出的一个不太具体的问题,我们深表歉意:

我的应用程序基于一个 JSON 文件,我在我的节点 webkit 应用程序的初始阶段加载该文件,它是一堆计算的中心。

在应用程序中,可以打开一个文件对话框来创建一个新的 JSON 文件。现在,当然,我希望应用程序根据新 JSON 重新计算所有内容。当我按下 node webkit 的 "refresh" 按钮时它起作用了,但是我无法通过使用 运行 获得它

require('nw.gui').Window.open('index.html');

也不

require('nw.gui').Window.get().reload(3);.

我也想知道在节点级别处理这个问题是否是好的方法。难道不应该由 Angular 完成吗?但是我无法真正从 "outside" javascript.

连接到控制器的内容

感谢任何提示...

页面加载逻辑总是很棘手,正如您提到的那样 - 需要重新加载页面,这不是很优雅,现代应用程序会避免这种情况。

对于您的情况,我建议如果您的 JSON 文件不是很大 - 将其存储在变量中并根据需要进行修改。优雅的方法是创建 Angular 服务,它可以充当 "model".

angular.service('JsonService', function() {
   var json = {
    // content
   };

   return {
      getJson: function () {
        return json;
      },
      setJson: function (newJson) {
         json = newJson;
      }
   };
 });

然后,每当您需要更新 JSON 调用 setJson(newJson) 方法并修改您的控制器以使用服务 getJson() 方法时。

您还可以将 loading/saving 添加到此服务的文件功能。可以在连接到仪表板页面的主控制器中调用加载功能。然后在第一页可见之前,JSON 文件将已经加载并且您保留所需的行为。