我如何访问requirejs中定义之外的变量
How can I access a variable outside of define in requirejs
我基于ko
(淘汰赛)实现了以下模块。
define(['ko'],
function(ko) {
function compareViewModel() {
var self = this;
self.products = ko.observableArray([]);
self.addProduct = function(p) {
self.products.push(p);
}
self.visible = ko.computed(function() {
return self.products().length > 0;
});
}
return { cvm: compareViewModel() };
});
我希望能够在 define
之外访问 cvm
$(function () {
//ACCESS CVM HERE
$('.compare-chk').click(function () {
var $chk = $(this).prev('input:checkbox');
if ($chk !== 'undefined') {
if (!$chk.is(':checked')) {
cvm.addProduct($chk.attr('value'));
console.log(cvm.products());
}
}
});
});
这可能吗?
为了访问 cvm
,您必须声明您需要定义此模块的模块:
requirejs(['jquery', 'ko'], function($, ko){
$(function () {
//ACCESS CVM HERE
$('.compare-chk').click(function () {
var $chk = $(this).prev('input:checkbox');
if ($chk !== 'undefined') {
if (!$chk.is(':checked')) {
ko.cvm.addProduct($chk.attr('value'));
console.log(ko.cvm.products());
}
}
});
});
});
注意 我们作为 requirejs
的第一个参数传递的数组中的模块和库很可能需要一些调整。您必须指定这些文件在您的应用程序中的位置。例如,请查看here, which is an introductory tutorial in requirejs or here,这是该库的官方文档。
我基于ko
(淘汰赛)实现了以下模块。
define(['ko'],
function(ko) {
function compareViewModel() {
var self = this;
self.products = ko.observableArray([]);
self.addProduct = function(p) {
self.products.push(p);
}
self.visible = ko.computed(function() {
return self.products().length > 0;
});
}
return { cvm: compareViewModel() };
});
我希望能够在 define
之外访问 cvm
$(function () {
//ACCESS CVM HERE
$('.compare-chk').click(function () {
var $chk = $(this).prev('input:checkbox');
if ($chk !== 'undefined') {
if (!$chk.is(':checked')) {
cvm.addProduct($chk.attr('value'));
console.log(cvm.products());
}
}
});
});
这可能吗?
为了访问 cvm
,您必须声明您需要定义此模块的模块:
requirejs(['jquery', 'ko'], function($, ko){
$(function () {
//ACCESS CVM HERE
$('.compare-chk').click(function () {
var $chk = $(this).prev('input:checkbox');
if ($chk !== 'undefined') {
if (!$chk.is(':checked')) {
ko.cvm.addProduct($chk.attr('value'));
console.log(ko.cvm.products());
}
}
});
});
});
注意 我们作为 requirejs
的第一个参数传递的数组中的模块和库很可能需要一些调整。您必须指定这些文件在您的应用程序中的位置。例如,请查看here, which is an introductory tutorial in requirejs or here,这是该库的官方文档。