小编cpe*_*e00的帖子

MongoDb:如何将其他对象插入到对象集合中?

我有一个文件"所有者",可以有"n"个阵营,营地有"教官",教师有"班级".之前我尝试使用嵌套数组来完成此操作(请参阅下面链接到我的帖子),但是我了解到位置运算符"$"没有嵌套那么深. MongoDB:将数组添加到现有数组中

但是,我了解到解决方法是使用对象集合而不是数组.我假设我必须使用"更新"和"$ set"来添加额外的"阵营",但是每次我做的都是覆盖(更新)之前插入的阵营.

下面是我想要完成的层次结构:

owner = {

    firstName: 'john',
    lastName: 'smith',
    ownerEmail: 'john.smith@gmail.com',

    camps : {

        {
            name: 'cubs-killeen',
            location: 'killeen'
        },

        {
            name: 'cubs-temple',
            location: 'temple'
        },

        instructors : {

            {
                firstName: 'joe',
                lastName : 'black'
            },

            {
                firstName: 'will',
                lastName : 'smith'
            }        
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

我也一直在尝试以下方面:

db.owners.update({ownerEmail:'john.smith@gmail.com'}, {$set: { camps:{ {name:'cubs-killeen'} } }})
Run Code Online (Sandbox Code Playgroud)

但是这会抛出一个意外的标识符{错误.

任何帮助一些示例mongo命令来实现上述结构将是非常感激的.

V/R

克里斯

javascript mongodb node.js mongojs

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

非常大的单页面应用程序设计问题

我目前正在写什么是一个非常非常大的单页web/javascript应用程序.

我使用的技术是ASP.NET MVC4,jquery,knockout.js和amplify.js.

我遇到的问题是,大多数(如果不是全部)单页应用程序示例都适用于较小的应用程序,其中包含所有脚本模板(无论是jquery,handlbars等等)都与其他模板一起存在于同一个文件中的HTML代码.这适用于较小的应用程序,但我正在构建的应用程序是一个包含许多很多屏幕的整个维护物流应用程序.

到目前为止我采用的方法是我有一个外壳(我的主index.cshtml文件),我使用jquery的load()方法来加载或者更确切地注入用户进行特定选择时所需的特定文件.

例:

function handleLoginClick(){

    App.mainContentContainer.delegate('#btnLogin', 'click', function() {

        App.loadModule('Home/ProductionControlMenu', App.MainMenuView.render());

    });

}
Run Code Online (Sandbox Code Playgroud)

这是App.loadModule函数的代码:

App.loadModule = function(path, callback){

    App.mainContentContainer.load(App.siteRoot + path, callback);

};
Run Code Online (Sandbox Code Playgroud)

一切顺利,直到我需要实际开始与新加载的屏幕上的各种表单元素进行交互.jquery似乎无法直接处理它们.我不能使用.live()或.delegate(),因为它们不是事件,它们是文本框和按钮,有时我需要更改它们的css类.

我们发现的唯一方法是从外壳获取一个元素的句柄(没有通过.load()加载的东西)并使用jquery的.find()方法,如下所示:

  App.mainContentContainer.find('#btnLogin').addClass('disabled');
Run Code Online (Sandbox Code Playgroud)

很明显,每次我需要与表单元素进行交互甚至检索值时,我都不想做这样的事情.

有没有人有任何想法,我如何创建一个可维护的非常大的单页面应用程序,可能有数百个.html文件,而不必将所有的HTML代码放在一个文件中,仍然解决这个.load()问题我是有?

任何想法将不胜感激.:-)

V/R

克里斯

UPDATE

我想我会发布一个更新,关于事情的进展和有效的方法.经过大量研究后,我决定采用Google的AngularJS Javascript框架.它以指数方式简化了考验,我绝对会建议所有正在考虑制作大型SPA的人来看看.

链接:

主站点 http://angularjs.org/

关于Angular的精彩免费短片:http: //www.egghead.io/

javascript jquery singlepage asp.net-mvc-4 angularjs

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

如何使用AngularJS指令创建此自定义控件?

我对AngularJS有点新意,我正在尝试编写基于Zurb Foundation自定义选择的自定义选择控件(请参阅此处:http://foundation.zurb.com/docs/components/custom-forms.html)

我知道我需要使用一个指令,但我不知道如何实现这一点.

它必须是可重用的,并允许迭代传入的任何数组.可能需要用户从下拉列表中选择项目时的回调.

以下是自定义Foundation下拉列表的标记:

    <select name="selectedUIC" style="display:none;"></select>
    <div class="custom dropdown medium" style="background-color:red;">
        <a href="#" class="current custom-select">Please select item</a>
        <a href="#" class="selector custom-select"></a>
        <ul ng-repeat="uic in uics">
            <li class="custom-select" ng-click="selectUIC(uic.Name)">{{uic.Name}}</li>
        </ul>
    </div>
Run Code Online (Sandbox Code Playgroud)

这适用于现在.我可以从这个页面的Ctrl中填充控件.但是,正如您所看到的,每次我想使用自定义下拉控件时,我都必须这样做.

关于如何将这个宝宝变成可重复使用的指令的任何想法?

谢谢你的帮助!

克里斯

angularjs angularjs-directive

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

使用regex从url中删除查询字符串参数

我是regex的新手,需要从我们的网址中删除一些内容

 http://mysite.blah/problem/smtp/smtp-open-relay?page=prob_detail&showlogin=1&action=smtp:134.184.90.18
Run Code Online (Sandbox Code Playgroud)

我需要删除"?"中的所有内容 然后,离开我:

http://mysite.blah/problem/smtp/smtp-open-relay
Run Code Online (Sandbox Code Playgroud)

这是我们用于获取路径数据的当前正则表达式.例如,我可以抓住"smtp"和"smtp-open-relay"(我们需要).但是,有时我们的url会根据用户的来源而改变,从而附加查询字符串参数,这会导致我们当前的正则表达式爆炸.

// Retrieve the route data from the route
var routeData = /([0-9a-zA-Z_.-]+)\/([0-9a-zA-Z_.-]+)$/g.exec(route);
Run Code Online (Sandbox Code Playgroud)

我需要它来忽略"?"中的内容.上.

javascript regex jquery

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

在Express中,我在哪里放置我的sitemap.xml和robots.txt文件?

我正在学习Express,我正在尝试确定将sitemap.xml文件和robots.txt文件放在何处.他们进入/ public文件夹吗?或者他们是否在我的Express应用程序的完整根目录中?

非常感谢,

克里斯

node.js express

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

如何使用jquery $ .each()方法迭代对象文字数组?

如何使用jquery $ .each()方法迭代对象文字数组?

在chrome调试器中,它返回"未定义,未定义".

任何帮助将非常感激.谢谢!

    var links = [ 
                    { className : 'hover', url : 'http://www.yahoo.com' },
                    { className : 'hover-2', url : 'http://www.foxnews.com' },
                ];


    loopy(links)


    function loopy(obj){

        $.each(

            obj,

            function(){

                console.log(obj.className + ', ' + obj.url);

            }                   

        );
    }
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery object literals

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

如何在AngularJS中创建自定义TabControl指令

我目前正在使用Zurb Foundation 4作为我的CSS/Grid Framework,他们有一个非常好的Tab Control.但是,当它位于通过ng-view加载的页面上时,选项卡控件无法正常工作.

所以,我以为我会编写自己的指令,因为我将在我们的网站上使用它.然而,一旦我进入它,我很快就意识到我在我脑海中.

我提供了一个我想要做的例子,然后是我实际代码混乱的一个例子

静态示例:这是我想要完成的.请参阅JsFiddle上的完整代码示例. http://jsfiddle.net/aYTaN/1/

<div class="tab-container">

    <p class="active-tab">
        <a href="">Tasks</a>
    </p>
    <p>
        <a href="">Parts</a>
    </p>

    <section>
        Tab 1 content
    </section>

    <section style="display:none">
        Tab 2 Content
    </section>

</div>
Run Code Online (Sandbox Code Playgroud)

这是我的实际代码不起作用:http: //jsfiddle.net/dxwc9/3/

app.directive('tabControl', function($rootScope) {
    'use strict';

    return {

        restrict: 'E',

        link: function(scope, element, attrs) {

            console.log(attrs.tabs);

            var tabs = attrs.tabs.split(',');

            var tabContainer = angular.element('<div class="tab-container"></div>'),
                tab = angular.element('<p><a href=""></a></p>'),
                content = angular.element('<section></section>');

            for (var i = 0; i<tabs.length; i++){

                tabContainer.append(tab);

                var title = tab.find('a');

                title.html(tabs[i]); …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

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

Elixir/Phoenix无法连接到云托管的Postgres DB

试图让我的第一个Phoenix应用程序连接到Compose的Cloud Hosted Postgres DB并且无法连接.我已经确认它已启动并正在运行.我收到以下错误:

[error] GenServer #PID<0.178.0> terminating
** (DBConnection.ConnectionError) tcp connect (postgres://*****@aws-us-east-1-portal.5.dblayer.com:16786/compose:5432): non-existing domain - :nx
domain
    (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2
    (connection) lib/connection.ex:622: Connection.enter_connect/5
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
** (Mix) The database for HelloPhoenix.Repo couldn't be created: an exception was raised:
    ** (DBConnection.ConnectionError) tcp connect (postgres://****@aws-us-east-1-portal.5.dblayer.com:16786/compose:5432): non-existing domain -
:nxdomain
        (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2
        (connection) lib/connection.ex:622: Connection.enter_connect/5
        (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Run Code Online (Sandbox Code Playgroud)

这些是我的依赖:

defp deps do
  [{:phoenix, "~> 1.2.1"},
  {:phoenix_pubsub, "~> 1.0"},
  {:phoenix_ecto, "~> 3.0"},
  {:postgrex, ">= 0.0.0"},
  {:phoenix_html, …
Run Code Online (Sandbox Code Playgroud)

postgresql elixir ecto phoenix-framework

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