在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 文件之间的数据。 现在这里有几点需要记住。
- 不要在状态文件中使用可观察属性,而是使用普通变量。
- 在您的login.js 文件中注入(inject)状态文件。
- 在您的login.vm中,为状态文件变量赋值。
- 现在将状态文件注入(inject)dashboard.js 文件中。
- 状态的所有属性都应在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/