小编Szy*_*ski的帖子

无法从角度检索进样器

我有这个应用程序有两个模块:

angular.module('components', []).directive('foo', function () { return {};});
angular.module('gaad', ['components']);
Run Code Online (Sandbox Code Playgroud)

有一堆与这个模块相关的指令,我不在这里.该应用程序工作正常.但是当我试图检索模块的注入器时gaad:

var injector = angular.injector(['gaad', 'components']); //called after 'gaad' module initialization
Run Code Online (Sandbox Code Playgroud)

抛出错误:

Uncaught Error: Unknown provider: $compileProvider from components 
Run Code Online (Sandbox Code Playgroud)

该应用程序现在很大,我不知道我应该在哪里寻找错误.所以我的问题是:我的问题可能是什么原因?

编辑: 我能够复制我的问题:http://jsfiddle.net/selbh/ehmnt/11/

angularjs

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

复杂的角度js ng级

我有组件,并在设置css类时遇到问题.我希望它总是有一个"box"类,然后有指令"class"参数和一个条件类"mini"指定的其他类.

从概念上讲,我想要实现的是这样的:

<div class="box {{class}}" data-ng-class="{mini: !isMaximized}">
...
</div>
Run Code Online (Sandbox Code Playgroud)

问题是当我设置类html属性时,省略了ng-class属性.如何在不更改控制器的情况下使我的示例工作?它是否可能,或者我应该在控制器中设置类(我希望避免)?

angularjs ng-class

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

如何在angularjs中禁用自动注射器(注射器类型的魔术发现)?

Angularjs具有基于函数参数自动发现提供程序的这一很好的功能.例如,如果我想在某些函数中使用$ http,我会这样称呼它:

$inject.invoke(function ($http) {

});
Run Code Online (Sandbox Code Playgroud)

Angularjs将"知道"我的依赖项是什么.它将通过读取我的函数的主体并基于它将知道的参数名称来解决它.

但是,如果要缩小代码,则会出现问题.Minifier将更改参数名称.这就是为什么我们应该使用这种表示法:

$inject.invoke(['$http', function ($http) {}]);
Run Code Online (Sandbox Code Playgroud)

或者这个表示法:

function Foo ($http) {}
Foo.$inject = ['$http'];

$inject.invoke(Foo);
Run Code Online (Sandbox Code Playgroud)

我们应该总是最终缩小我们的代码.所以我们应该避免使用这种神奇的(第一个例子)表示法.

现在我的问题:

我正在尝试缩小我的js代码,angularjs无法解析提供者名称.我找不到一个我没有指定的地方.$inject = [...].现在它只是说:"Unknown provider a"我不知道它指的是什么功能.

是否可以关闭提供商的angularjs自动发现(自动注入)?我会在缩小之前测试并修复我的代码.

所以,我想知道如何禁用这个"神奇"的angularjs演绎.因为我总是缩小我的代码,所以当我不小心使用这个超级英雄的邪恶时,我希望angularjs对我大喊大叫.

如何关闭它?

angularjs

15
推荐指数
2
解决办法
1379
查看次数

如何为AngularJS创建变更指令?

通常,每次用户按下键时,ng-model都会更新绑定模型:

<input type="text" ng-model="entity.value" />
Run Code Online (Sandbox Code Playgroud)

这在几乎所有情况下都很有效.

但是当onchangeup/onkeydown事件发生时,我需要它来更新onchange事件.

在旧版本的角度中,有一个ng-model-instant指令,它与ng-model现在一样工作(至少对于用户来说 - 我对它们的实现一无所知).因此,在旧版本中,如果我刚刚给出了ng-model,它就是更新模型onchange,当我指定ng-model-instant时,它正在更新模型onkeypup.

现在我需要ng-model用于元素的"更改"事件.我不希望它是即时的.这样做最简单的方法是什么?

编辑

输入仍然必须反映模型的任何其他更改 - 如果模型将在其他位置更新,则输入的值应反映此更改.

我需要的是让ng-model指令像在旧版本的angularjs中一样工作.

以下是我正在尝试做的解释:http: //jsfiddle.net/selbh/EPNRd/

events angularjs

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

如何在仅限于注释的angularjs指令中设置属性

我在angularjs中找到了很好的功能.可以将指令设置为对注释起作用.

{
    ...
    restrict: 'M'
    ...
}
Run Code Online (Sandbox Code Playgroud)

这就是文档中所说的诀窍.该指令的用法如下:

<!-- directive: my-directive-name -->
Run Code Online (Sandbox Code Playgroud)

只要我不需要将参数传递给该指令,它就可以正常工作.是否可以将指令上的参数设置为仅限于注释?语法是什么?

angularjs

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

克隆angularjs中的html元素

我正在尝试在angularjs中实现拖放系统.

我想在拖动开始时克隆拖动的对象.但是我不知道如何在angularjs中克隆元素及其范围和链接控制器?

有什么建议?

angularjs

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

如何在node-webkit中获取工作目录

我有一个可以从命令行运行的简单程序.此程序用于markdown文件的实时预览.当我打包应用程序时

cat $NW/nw marknow.nw > marknow
Run Code Online (Sandbox Code Playgroud)

并从不同的位置运行:

./build/marknow ../relative/path/to/file.md
Run Code Online (Sandbox Code Playgroud)

我无法获得当前的工作目录.

process.cwd()
Run Code Online (Sandbox Code Playgroud)

正在返回/ tmp/something ???

如何在node-webkit中获取工作目录?./build/marknow ../relative/path/to/file.md调用的目录.

working-directory node-webkit

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

参数列表中间的Typescript rest参数

我想声明一个函数,其中最后一个参数始终是一个回调.但是当我这样做时:

interface Statement extends events.EventEmitter {
    bind(...args, callback?:(err?:Error)=>void) : Statement;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

error TS1014: Rest parameter must be last in list
Run Code Online (Sandbox Code Playgroud)

typescript中是否可以将Rest参数作为参数列表中的最后一个参数?有什么黑客可以帮我解决这个问题吗?

arguments typescript

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