小编Mat*_*ics的帖子

我可以在Razor中使用@helper语法返回一个字符串吗?

我有一个RazorHelpers.cshtml文件,app_code其中如下所示:

@using Molecular.AdidasCoach.Library.GlobalConstants

@helper Translate(string key)
{
    @GlobalConfigs.GetTranslatedValue(key)
}
Run Code Online (Sandbox Code Playgroud)

但是,我有一个案例,我想将结果用作链接文本@Html.ActionLink(...).我无法将结果转换为字符串.

有没有办法从Razor帮助器返回普通字符串,以便我可以在HTML和@Html帮助器中使用它们?

string type-conversion razor razor-declarative-helpers asp.net-mvc-3

26
推荐指数
3
解决办法
2万
查看次数

如何在加载数据之前阻止组件呈现?

我正在等待道具从一个名为的商店出来GetDealersStore,而我获取数据的方式是我正在执行的操作:

  componentWillMount () { GetDealersActions.getDealers(); }
Run Code Online (Sandbox Code Playgroud)

我已经测试了应用程序并componentWillMount()在初始渲染之前运行,我有这个

let dealerInfo;
if (this.state.dealerData) {
  dealerInfo = this.state.dealerData.dealersData.map((dealer) => {
    return (<div>CONTENT</div>);
  })
} else {
  dealerInfo = <p>Loading . . .</p>
}
Run Code Online (Sandbox Code Playgroud)

但对于第一第二,你可以看到<p>Loading . . .</p>在这是在屏幕else的上面的条件,再渲染其余想出了return (<div>CONTENT</div>);这是if在有条件的.所以,我想,这意味着render方法已经触发了两次,因为它一直在等待来自数据库的数据.

数据库中的数据在第一次渲染时不可用,因此,如何在第一次初始渲染发生之前获取该数据?

javascript reactjs

9
推荐指数
2
解决办法
2万
查看次数

用简明英语列出的项目的正则表达式

这是一个人为的例子,但我试图在这里得出一般原则.

给定使用此类列表形式的英语短语:

I have a cat
I have a cat and a dog
I have a cat, a dog, and a guinea pig
I have a cat, a dog, a guinea pig, and a snake
Run Code Online (Sandbox Code Playgroud)

我可以使用正则表达式获取所有项目,无论有多少项目?请注意,项目可能包含多个单词.

显然,如果我只有一个,那么我可以使用I have a (.+),如果有两个,那么就可以了I have a (.+) and a (.+).

但是,如果我想要匹配的不仅仅是一个例子,事情会变得更加复杂.如果我想从两个例子提取列表中的项目,我想这会工作:I have a (.*)(?: and a (.*))?虽然这部作品的第一阶段,告诉我,我有一个catnull,为第二个它告诉我,我有一个cat and a dognull.当我尝试以更多形式匹配短语时,事情变得更糟.

有什么方法可以为此目的使用正则表达式吗?这似乎相当简单,我不明白为什么我的正则表达式匹配2项目列表工作,但匹配1-或2项目列表的正则表达不起作用.

java regex

7
推荐指数
1
解决办法
164
查看次数

如何在Crockford的新构造函数模式中共享"构造函数"功能?

我现在已经多次在无类OOP上观看了这个问题的视频,而我在将这个应用到现实世界的例子中时遇到了麻烦.

Crockford的新构造函数模式如下所示:

function constructor(spec) {
  let {member} = spec,
      {other}  = other_constructor(spec),
      method   = function () {
        // accesses member, other, method, spec
      };

  return Object.freeze({
      method,
      other,
  });
}
Run Code Online (Sandbox Code Playgroud)

spec选项哈希在哪里,结果对象公开关闭所有内部成员的方法.忽略解构(因为这可以在现今的JS中以长篇形式完成),我如何在现实世界的例子中应用这种模式?

我目前有一个带有基类的库,Module(model, id)其中model包含一些引导数据.

// constructor, original flavor
function Module(model, id) {
  this.id = id;
  this.model = model;
}
Run Code Online (Sandbox Code Playgroud)

然后,我有几种继承自此父级的模块Module.在Crockford的模式下,我会把它作为"构造函数":

// constructor, Crockford's Cool Ranch
function module(spec) {
    let id = spec.id,
        model = spec.model;

    return Object.freeze({});
}
Run Code Online (Sandbox Code Playgroud)

我如何使用Crockford的模式(它似乎根本不使用继承,而是从多个源组成一个对象) …

javascript inheritance

7
推荐指数
1
解决办法
347
查看次数

Javascript点击网站的计数器

我正在尝试为网站编写一个点击计数器.作为首选项,不是必需的,我正在尝试使用Javascript来执行此操作.在网站的html文件中,我正在从javascript文件中读取一个数字并输出它.每次发生命中时如何使其"计数"?

对不起这个模糊的问题.我正走在正确的轨道上吗?任何提示,代码或参考将不胜感激.

谢谢!

javascript

6
推荐指数
1
解决办法
2万
查看次数

new Event('build') vs new CustomEvent('build')

在此 MDN 页面创建和触发事件中,它显示了使用Event或来创建事件的示例CustomEvent。它解释了CustomEvent允许自定义细节,但除此之外,它并没有说太多。

那么区别是什么呢?如果我正在创建一个通用的滚动事件,我应该使用CustomEvent? 还是仅针对javascript中不存在的事件?

另外,我注意到它MouseEvent也是 的子级Event,所以如果我要创建点击事件,我可以只使用new MouseEvent('click')?

谢谢

javascript

6
推荐指数
1
解决办法
1538
查看次数

setTimeout()如何在此代码中创建内存泄漏?

我正在审查此演示文稿中的幻灯片:http://slid.es/gruizdevilla/memory

在其中一张幻灯片中,此代码显示它会创建内存泄漏:

var buggyObject = {
   callAgain: function() {
     var ref = this;
     var val = setTimeout(function() {
        ref.callAgain();
     }, 1000);
   }
}

buggyObject.callAgain();
buggyObject = null;
Run Code Online (Sandbox Code Playgroud)

有人可以在这里更详细地解释这个问题吗?我可能会在这里遗漏一些细微之处.

javascript memory-leaks

5
推荐指数
2
解决办法
7078
查看次数

JavaScript 原生 Promise() 不带回调

看看这个 jQuery 代码:

var promise = new Deferred(),
    some;

some = function(promise) {
    // do cool things

    promise.resolve();
};

promise.then(/*  callback cool things   */);

// init everything
some(promise);
Run Code Online (Sandbox Code Playgroud)

我不确定这种方法的架构正确性,但我使用它很长时间并且对我来说很方便。

在原生 JavaScript 中我不能使用这种方法。构造函数new Promise()需要回调参数,因此我无法将实例Promise作为参数传递。

所以我的问题是:如何预定义 JavaScript 原生 Promise,将其作为参数传递给函数和解析?

javascript jquery design-patterns promise ecmascript-harmony

5
推荐指数
1
解决办法
2570
查看次数

React:替换文本中的链接

替换字符串中的url并将它们作为React链接呈现的正确方法是什么?

说我有一个字符串:'hello http://google.com world',我希望它呈现如下:hello <a href="http://google.com">http://google.com</a> world

javascript reactjs react-jsx

4
推荐指数
4
解决办法
5151
查看次数

无法理解有关ES6解构的这个片段

我正在阅读你不知道JS系列最新版本,当它进入解构部分时完全丢失.请帮我理解这里的片段.这里的上下文将使一些指定的配置生效,而其他默认值仍然可用.

默认值:

var defaults = {
    options: {
        remove: true,
        enable: false,
        instance: {}
    },
    log: {
        warn: true,
        error: true
    }
};
Run Code Online (Sandbox Code Playgroud)

配置:

var config = {
    options: {
        remove: false,
        instance: null
    }
};
Run Code Online (Sandbox Code Playgroud)

作者是如何完成的

config.options = config.options || {};
config.log = config.log || {};
({
    options: {
        remove: config.options.remove = defaults.options.remove,
        enable: config.options.enable = defaults.options.enable,
        instance: config.options.instance =
                      defaults.options.instance
    } = {},
    log: {
        warn: config.log.warn = defaults.log.warn,
        error: config.log.error = defaults.log.error
    } …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

4
推荐指数
2
解决办法
287
查看次数