javascript - 如何获取从一个JS文件到viewModels的另一个JS以及主JS文件中存在的值?

标签 javascript html mvvm knockout.js oracle-jet

enter image description here

在login.js中,rest API返回某些值,我必须在Dashboard.html中使用这些值,但我无法在dashboard.js中获取这些值。

我也想在index.html中实现相同的目标(即,我必须从login.js获取值。

现在请在下面澄清我,

如何将值从一个 js 传递到 viewModels 中的另一个 js 文件? 如何将值从 viewModel js 文件传递​​到 main.js 文件?

登录.js

define(['ojs/ojcore', 'knockout', 'jquery', 'ojs/ojknockout',   'ojs/ojinputtext'], 

function (oj, ko, $,main)
{
 var myviewModel = function()
{
  var self = this;
 self.isLoggedIn = ko.observable(false);
 self.username = ko.observable();
 self.password = ko.observable();
  self.save = function(data, event)
{
    $.ajax({

        url: "my url",
        type: "GET",
        headers: { header parameters },

        success: function(data)
        {   
  var json =JSON.stringify($.parseJSON(data));
 // alert(json);
  var val = JSON.parse(json);

 self.ERROR_CODE= ko.observable(val.Body.processResponse.ERROR_CODE);
 self.ERROR_MSG= ko.observable(val.Body.processResponse.ERROR_MSG);
 if(self.ERROR_CODE()=='S')
 {
     self.isLoggedIn(true);
      window.location="js/views/dashboard.html";
 }
 document.getElementById('errormsg').value=val.Body.processResponse.ERROR_MSG;

        },
        error: function(jqXHR, exception)
        {
           alert("Not OK!") ;   
        }
   })
}
 }
 return new myviewModel();

});

我想传递 self.isLoggedIn 值。

最佳答案

创建一个单独的 js 文件,例如 xyzState.js,它将用于保存导航或 js 文件之间的数据。 现在这里有几点需要记住。

  1. 不要在状态文件中使用可观察属性,而是使用普通变量。
  2. 在您的login.js 文件中注入(inject)状态文件。
  3. 在您的login.vm中,为状态文件变量赋值。
  4. 现在将状态文件注入(inject)dashboard.js 文件中。
  5. 状态的所有属性都应在dashboard.vm 中可用。

状态文件看起来像这样。

define('xyzstate',
    ['ko'],
    function (ko) {
        var self = {};

        var clear = function () {          
            self.isLoggedIn= false;

        self = _.extend(self, {
            isLoggedIn: false,           
        });

        return self;
    });

关于javascript - 如何获取从一个JS文件到viewModels的另一个JS以及主JS文件中存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41894608/

相关文章:

html - 为什么我的 html 文件在上传时不再使用我的 css 文件?

jquery - 如何用html,css,jquery制作类似Facebook Mobile侧边菜单的滑动菜单?

mvvm - 带有条件的 knockout 事件绑定(bind)

javascript - 在表中使用多个 ngrepeat 时如何避免多个 tbody

c# - 将 TabItem 添加到现有 TabControl WPF/MVVM

windows-phone-7 - MvvmCross 和 WP7 辅助磁贴

javascript - 使用 javascript 使用 Gmail API 显示邮件内容

javascript - 带填充的行高

javascript - 如何将参数从指令方法传递到 Controller ?

javascript - 将 yaml 字符串转换为 JSON 对象