小编Jan*_*nen的帖子

在运行时添加RequireJS配置的路径

好的,我已经知道你应该RequireJS像这样配置路径

require.config({
  paths: {
    name: 'value'
  }
});
Run Code Online (Sandbox Code Playgroud)

并称之为这样.

require(['name'], function() {
    /* loaded */
});
Run Code Online (Sandbox Code Playgroud)

但问题是,我正在环境中工作,我无法访问现有的呼叫require.config(...).对于那些关心的人来说,环境是Azure移动服务预定的工作.Microsoft已在环境中包含RequireJS并配置了路径.我的问题是双重的.

1.如何添加现有require.config()的路径? 我知道require.config()再次调用将破坏现有配置.这是我不想做的.

2.如何知道哪些路径已配置? 我真的不想覆盖任何现有的路径名或意外覆盖任何现有的库.

requirejs azure-mobile-services

16
推荐指数
1
解决办法
4309
查看次数

Twitter Bootstrap预先选择未受KnockoutJS约束

好吧,我已经和这个问题争了好几个小时了,把问题缩小到一个非常简单的小提琴

问题是,当我在文本输入上使用twitter bootstrap的typeahead插件并进行选择时,该值不会在KnockoutJS ViewModel中更新.我知道我可以破解它的工作,但必须有一些我在这里缺少的东西.

基本上我所拥有的是:

淘汰赛绑定

// Bind twitter typeahead
ko.bindingHandlers.typeahead = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var $element = $(element);
        var allBindings = allBindingsAccessor();
        var typeaheadArr = ko.utils.unwrapObservable(valueAccessor());

        $element.attr("autocomplete", "off")
                .typeahead({
                    'source': typeaheadArr,
                    'minLength': allBindings.minLength,
                    'items': allBindings.items,
                    'updater': allBindings.updater
                });
    }
};
Run Code Online (Sandbox Code Playgroud)

淘汰ViewModel

function MyModel(){
    var self = this;
    self.productName = ko.observable();
    self.availableProducts = ['One', 'Two', 'Three'];
}

ko.applyBindings(new MyModel());
Run Code Online (Sandbox Code Playgroud)

HTML

<input type="text" data-bind="typeahead:availableProducts, value:productName"/>
Run Code Online (Sandbox Code Playgroud)

其余的东西只是来自Twitter Bootstrap.

twitter-bootstrap knockout.js bootstrap-typeahead

8
推荐指数
1
解决办法
4637
查看次数

ContainsKey(字符串键)如何在Dictionary <string,string>上抛出KeyNotFoundException?

你怎么可能KeyNotFoundException在调用字典时得到一个?

鉴于我正在调用的方法的签名:

IDictionary<string, string> RequestParams { get; }
Run Code Online (Sandbox Code Playgroud)

鉴于我正在制作的电话:

在此输入图像描述

鉴于我将返回Dictionary<string, string>如下:

    public IDictionary<string, string> RequestParams
    {
        get
        {

            NameValueCollection nvc = HttpContext.Request.Params;

            #region Collect the Request Params
            Dictionary<string, string> dict = new Dictionary<string, string>();
            nvc.AllKeys.ForEach(s => dict[s] = nvc[s]);
            #endregion

            #region Collect the Route Data Present in the Url
            RouteData.Values.ForEach(pair =>
            {
                string param = (pair.Value ?? "").ToString();
                if (!String.IsNullOrEmpty(param) && Uri.AbsolutePath.Contains(param))
                    dict[pair.Key] = param;
            });
            #endregion

            return dict;
        }
    }
Run Code Online (Sandbox Code Playgroud)

而且我实际上已经检查过它确实会返回一个实例化的和填充的 Dictionary<string, string>

c# dictionary

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

jQuery事件绑定和处理

我已经看过很多像这样的jQuery代码,不用说我不喜欢它:

<div id="myDiv">
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
</div>

<script>
    $(document).ready(function(){
        $('clickable').click(function(){
            // Do some stuff...
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我认识的人都在做这个,因为上述事件绑定和处理需要的HTML结构,可在页面上,但它会导致混合表现,逻辑和配置遍布网站的意见.此外,它几乎使用任何调试器来调试逻辑非常困难.

所以,我已经开始在这个单独的.js文件中编写代码(在这里小提琴):

// BEGIN: Event Handlers
    var onLoad = function(){
        $('.clickable').data('clicked', false);
    };
    var onMyDivClick = function(){
        var clicked = $(this).data('clicked');
        if (clicked) {
            $(this).trigger('myCustomEvent');
        } else {
            alert('you clicked me');
            $(this).data('clicked', true);
        }
    };
    var onMyCustomEvent = function(){
        $(this).css('color', 'dimGray');
        alert('please don\'t click me again');
    };
// …
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-events

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

C#泛型缓存,类型安全

我正在寻找一种方法来为任何对象提供通用的本地缓存.这是代码:

    private static readonly Dictionary<Type,Dictionary<string,object>> _cache 
        = new Dictionary<Type, Dictionary<string, object>>();

    //The generic parameter allow null values to be cached
    private static void AddToCache<T>(string key, T value)
    {
        if(!_cache.ContainsKey(typeof(T)))
            _cache.Add(typeof(T),new Dictionary<string, object>());

        _cache[typeof (T)][key] = value;
    }

    private static T GetFromCache<T>(string key)
    {
        return (T)_cache[typeof (T)][key];
    }   
Run Code Online (Sandbox Code Playgroud)

1-有没有办法不使用getfromcache方法?

2-有没有办法确保第二个字典中的类型安全,说所有对象都具有相同的类型.(这是由addToCache方法提供的,但我更喜欢设计中的类型控件).例如,要具有以下类型的_cache

    Dictionary<Type,Dictionary<string,typeof(type)>>
Run Code Online (Sandbox Code Playgroud)

谢谢

c# generics caching

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