小编w00*_*w00的帖子

requirejs,一个文件中的两个类

我刚开始使用RequireJS,但是我被困在我想要使用一个js文件的部分,其中有两个define(),如下所示:

文件名:test.js

define('test1', ['jquery'], function() {
    return {
        method1 : function () {
            console.log("test1 - method 1");
        },

        method2 : function () {
            console.log("test1 - method 2");
        }
    }
});

define('test2', ['jquery'], function() {
    return {
        method1 : function () {
            console.log("test2 - method 1");
        },

        method2 : function () {
            console.log("test2 - method 2");
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我还有一个bootstrap,js文件,由RequireJS框架自动加载:

require(['jquery', 'test', 'test2'], function ( $, t1, t2 ) {
    console.log(t1);
});
Run Code Online (Sandbox Code Playgroud)

它确实找到了第二个参数,即"测试"文件.只是,它返回一个' null '.它找不到'test2',因为它试图寻找一个名为'test2.js'的文件.其实我想做的事情如下:

require(['jquery', 'test.test1', 'test.test2'], function ( $, …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs

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

一个php插件架构

我正在尝试为自己的框架创建一个插件架构的方法.我已经阅读了很多主题,并在这里和其他网站发布.基本上我来到以下解决方案,似乎是PHP(目前)唯一的好选择.

这个想法是每个类都像类一样扩展了一种观察者.所以Template类,BaseController等总是扩展一个Plugin类.

class BaseController extends Plugin
{
    public function __construct()
    {
        // Plugin check, notify all loaded plugins
        $this->checkForEarlyHooks();

        // Init some standard stuff
        $this->view = new Template();
        $this->baseLayout = 'layout.html';

        $this->something = new Something();

        // Plugin check, notify all loaded plugins
        $this->checkForLateHooks();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这里基本上发生的是当indexController扩展baseController时,插件检查就完成了.在这种情况下为构造函数.在实际调用Action方法之前,如果要使用插件进行某种登录检查,这可能很方便.

Plugin类可以解析从哪个类调用,并知道在加载的插件中要查找的函数.

另请注意,它会检查加载的插件列表2次.在构造函数中加载(早期)之前的一个,并且在加载所有变量(晚期)时加载一个.

我还可以在"checkForLateHooks()"函数中添加变量.因此钩子函数也可以操作它们,比如'baseLayout'变量.

钩子函数看起来像这样:

public function hookConstruct ( &$baseLayout )
{
    $baseLayout = 'login.html';
}
Run Code Online (Sandbox Code Playgroud)

现在基本上我的问题是,这种方法有什么好处吗?我知道也有很多其他方法可以做到这一点.但我主要不想在以后遇到设计问题.现在看来这是一个好主意,但你永远不会知道事情会如何发挥作用......

如果我记得正确(从我读过的所有帖子中),这有点像WordPress(以及其他一些框架).

php architecture plugins

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

无法在PHP中使用COM打开Word文档

我正在尝试使用COM函数打开并使用PHO读取Word文档的内容.但每当我尝试阅读内容时,它会给我以下错误:

致命错误:带有消息的未捕获异常'com_exception'' 源: Microsoft Word
描述:此命令不可用,因为没有文档打开.

我有以下代码:

    $word = new \COM ( "word.application" ) or die ( "Could not initialise MS Word object." );
    $word->Documents->Open ( realpath("test.doc" ) );

    // Extract content.
    $content = (string) $word->ActiveDocument->Content;

    echo $content;

    $word->ActiveDocument->Close(false);

    $word->Quit();
    $word = null;
    unset($word);
Run Code Online (Sandbox Code Playgroud)

我100%确定Word文档存在.我已经多次检查了这个.该文件的权限设置为Full Control.所以这也不可能.


我也读过关于php.net的评论.它说IIS引起了一个问题(我已经运行了).他的解决方案如下:

  • 执行"dcomcnfg"
  • 打开组件服务>计算机>我的电脑> DCOM配置
  • 搜索Microsoft Office Word 97-2003文档(它将被翻译成您的语言,所以需要一段时间并搜索它)< - 坚持这一点,找不到任何名为"Microsoft Office ... "
  • 右键单击它并打开属性
  • 选择"身份"选项卡
  • 通常将其设置为"启动用户".您必须将其更改为"交互式用户"或您选择的管理员用户.
  • 应用这些新设置并测试COM应用程序.它现在应该工作正常.

无论如何,我仍然没有这个工作.任何人都知道怎么可能修复这个错误...... ???

php com ms-word

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

调用现有方法时执行(魔术)方法

有没有一种神奇的方法,当从对象调用某个方法时,首先调用一个魔术方法.有点像__call方法,但只有在找不到方法时才会触发此方法.

所以在我的情况下,我喜欢这样的事情:

class MyClass
{
    public function __startMethod ( $method, $args )
    {
        // a method just got called, so  this is called first
        echo ' [start] ';
    }

    public function helloWorld ( )
    {
        echo ' [Hello] ';
    }
}

$obj = new MyClass();
$obj->helloWorld();

//Output:
[start] [Hello] 
Run Code Online (Sandbox Code Playgroud)

PHP中是否存在类似的内容?

php

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

OWIN/Katana和Mono之间的区别

我遇到了OWIN和Katana,我现在正试图了解这是什么.据我所知,它只是试图将Web应用程序与Web主机分开.

所以它基本上说当你构建一个ASP.NET MVC Web应用程序时,你在部署Web应用程序时绑定到IIS.使用OWIN/Katana你没有那个问题.这就是我从中理解的,这是正确的吗?

如果是这样,那么为什么我想在我的项目中使用OWIN/Katana时,我只需使用"mod_mono"将我的ASP.NET Web应用程序部署到NGINX,Apache等服务器上.

因为这基本上是OWIN项目的目标吗?但是我觉得将OWIN/Katana实现到我的Web应用程序然后只是简单地使用MVC 的Web API然后将其部署到Mono环境就更麻烦了.如果我愿意,我甚至可以在Linux中运行它.

所以什么时候应该选择OWIN/Katana而不是Mod Mono?它到底真的有所作为吗?

c# asp.net mono owin katana

7
推荐指数
0
解决办法
3109
查看次数

使用Entity Framework从2个表中返回数据

我正在使用MVC3和实体框架,但我来到了一个点,我需要来自不同表的更多数据.通常我会做这样的事情从表中获取数据:

Table: Users
id
username
Run Code Online (Sandbox Code Playgroud)

在代码中,我会做这样的事情来获得所有用户:

public static IEnumerable<Users> GetUsers( int userId )
{
    MyEntities ent = new MyEntities();

    return from g in ent.Users
           where g.OwnerUserId == userId
           select g;
}
Run Code Online (Sandbox Code Playgroud)

所以这会让我所有的用户回来.


但是用户可以加入一个组,我必须从特定组中获取所有用户名.

Table: userGroups
id
fk_user_id
fk_group_id
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用此代码:

public static IEnumerable<userGroups> GetUsersFromGroup( int groupId )
{
    MyEntities ent = new MyEntities();

    return from g in ent.userGroups
           where g.OwnerUserId == userId
           select g;
}
Run Code Online (Sandbox Code Playgroud)

现在显然这只返回"userGroups"表中的数据.但不知何故,我还需要Users表中的用户名.我怎样才能获得这些数据并仍然将我的"userGroups"作为IEnumerable返回?

在SQL中我只是做一个LEFT JOIN,但我无法弄清楚它是如何工作的.

.net c# entity-framework

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

存储库模式与ORM

有ORM时存储库模式有什么用?

例.假设我有以下(虚构)表:

表:用户

pk_user_id
fk_userrole_id
username
Run Code Online (Sandbox Code Playgroud)

表:userroles

fk_userrole_id
role
Run Code Online (Sandbox Code Playgroud)

现在有一个orm我可以简单地把它放在一个模型文件中:

$user = ORM::load('users', $id);
Run Code Online (Sandbox Code Playgroud)

现在$ user已经是我的对象,可以轻松加载:

(如果事物是​​自动的单数/复数,会更好)

foreach ( $user->userroles()->role as $role )
{
    echo $role;
}
Run Code Online (Sandbox Code Playgroud)

现在使用Repository模式,我必须为Users创建一个存储库,为Roles创建一个存储库.存储库还需要各种函数来为我检索数据并存储它.此外,它需要与Entity模型一起使用.所以我也必须创造所有这些.

对我来说,看起来很多东西...当我可以简单地获得像上面描述的ORM数据.而且我可以轻松存储它:

ORM ::店($用户);

在这种情况下,它不仅会将用户对象存储到数据库中,还会将对"角色"对象所做的任何更改存储起来.所以不需要像存储库模式那样需要任何额外的工作......


所以我的问题基本上是,为什么我要使用带有ORM的存储库模式?我已经看过教程在哪里使用该模式(与Doctrine一样).但它对我来说真的没有任何意义......任何人都可以解释它与ORM的结合使用.??

php orm repository-pattern

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

DropDownListFor回调或if语句

在我的MVC3应用程序中,我有一个下拉列表.在那里我必须显示所有结果,但必须禁用某些结果,以便它们不可选择.我怎样才能做到这一点?

这就是我现在所拥有的.它只是没有显示已将Disabled设置为true的玩家.

@Html.DropDownListFor(m => m.Position1, Model.SelectedTeam.TeamPlayers
                     .Where(c => c.Player.Disabled == false)
                     .OrderBy(t => t.Player.Lastname)
                     .ToSelectList(m => m.FullName, m => m.PlayerId))
Run Code Online (Sandbox Code Playgroud)

那么还有另一种方法来显示已禁用的播放器,但输出将是这样的,而不是完全隐藏它们:

<select>
  <option>Player 1</option>
  <option disabled="disabled">Player 2</option>
  <option>Player 3</option>
  <option>Player 4</option>
  <option disabled="disabled">Player 5</option>
  <option>Player 6</option>
</select>
Run Code Online (Sandbox Code Playgroud)

DropDownListFor可以实现吗?

c# razor asp.net-mvc-3

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

绝对div旁边彼此

在我的html页面中,我在容器div中有两个div.两个内部div有一个'位置:aboslute'.因为它们必须放在容器div的左下角.

当容器div只有一个内部div时,这很有效.但是当我添加第二个div时,第二个div放在第一个内部div的顶部.这是有道理的.但现在我正试图找到一种方法让它们彼此相邻,而不是彼此重叠.

生成内部div.所以我无法手动为他们添加ID.他们只有一个班级名称.

示例:

<div id="container">
    <div class="icon">ICON1</div>
    <div class="icon">ICON2</div>
</div>
Run Code Online (Sandbox Code Playgroud)
#container {
    position: relative;
    width: 200px;
    height: 200px;
    border: 1px solid red;
}

.icon {
    position: absolute;
    bottom: 0;
    left: 0;
    border: 1px solid green;
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?

html css

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

使用ActionBarSherlock以编程方式在Android中切换选项卡

我找不到任何关于此的信息,但是,我如何在ActionBarSherlock中以编程方式切换选项卡?

通常,当我想切换视图时,我会使用以下内容:

Intent intentSecondView = new Intent(this, SecondView.class);
this.startActivity(intentSecondView);
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用,因为选项卡中的视图是片段.

那么有什么方法可以在使用ActionBarSherlock时通过代码在选项卡之间切换?


这就是我当前添加带有标签的操作栏的方法.

在我的onCreate方法中,我有:

    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);

    setContentView(mViewPager);
    ActionBar bar = getSupportActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    mTabsAdapter = new TabsAdapter(this, mViewPager);

    mTabsAdapter.addTab(
            bar.newTab().setText("Fragment 1"),
            MyFragment1.class, null);
    mTabsAdapter.addTab(
            bar.newTab().setText("Fragment 2"),
            MyFragment2.class, null);
Run Code Online (Sandbox Code Playgroud)

我在AndroidManifest文件中没有添加任何内容来创建选项卡.这都是编程方式.

android actionbarsherlock android-actionbar

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