我有这个应用程序有两个模块:
angular.module('components', []).directive('foo', function () { return {};});
angular.module('gaad', ['components']);
有一堆与这个模块相关的指令,我不在这里.该应用程序工作正常.但是当我试图检索模块的注入器时gaad:
var injector = angular.injector(['gaad', 'components']); //called after 'gaad' module initialization
抛出错误:
Uncaught Error: Unknown provider: $compileProvider from components 
该应用程序现在很大,我不知道我应该在哪里寻找错误.所以我的问题是:我的问题可能是什么原因?
编辑: 我能够复制我的问题:http://jsfiddle.net/selbh/ehmnt/11/
我有组件,并在设置css类时遇到问题.我希望它总是有一个"box"类,然后有指令"class"参数和一个条件类"mini"指定的其他类.
从概念上讲,我想要实现的是这样的:
<div class="box {{class}}" data-ng-class="{mini: !isMaximized}">
...
</div>
问题是当我设置类html属性时,省略了ng-class属性.如何在不更改控制器的情况下使我的示例工作?它是否可能,或者我应该在控制器中设置类(我希望避免)?
Angularjs具有基于函数参数自动发现提供程序的这一很好的功能.例如,如果我想在某些函数中使用$ http,我会这样称呼它:
$inject.invoke(function ($http) {
});
Angularjs将"知道"我的依赖项是什么.它将通过读取我的函数的主体并基于它将知道的参数名称来解决它.
但是,如果要缩小代码,则会出现问题.Minifier将更改参数名称.这就是为什么我们应该使用这种表示法:
$inject.invoke(['$http', function ($http) {}]);
或者这个表示法:
function Foo ($http) {}
Foo.$inject = ['$http'];
$inject.invoke(Foo);
我们应该总是最终缩小我们的代码.所以我们应该避免使用这种神奇的(第一个例子)表示法.
现在我的问题:
我正在尝试缩小我的js代码,angularjs无法解析提供者名称.我找不到一个我没有指定的地方.$inject = [...].现在它只是说:"Unknown provider a"我不知道它指的是什么功能.
是否可以关闭提供商的angularjs自动发现(自动注入)?我会在缩小之前测试并修复我的代码.
所以,我想知道如何禁用这个"神奇"的angularjs演绎.因为我总是缩小我的代码,所以当我不小心使用这个超级英雄的邪恶时,我希望angularjs对我大喊大叫.
如何关闭它?
通常,每次用户按下键时,ng-model都会更新绑定模型:
<input type="text" ng-model="entity.value" />
这在几乎所有情况下都很有效.
但是当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/
我在angularjs中找到了很好的功能.可以将指令设置为对注释起作用.
{
    ...
    restrict: 'M'
    ...
}
这就是文档中所说的诀窍.该指令的用法如下:
<!-- directive: my-directive-name -->
只要我不需要将参数传递给该指令,它就可以正常工作.是否可以将指令上的参数设置为仅限于注释?语法是什么?
我正在尝试在angularjs中实现拖放系统.
我想在拖动开始时克隆拖动的对象.但是我不知道如何在angularjs中克隆元素及其范围和链接控制器?
有什么建议?
我有一个可以从命令行运行的简单程序.此程序用于markdown文件的实时预览.当我打包应用程序时
cat $NW/nw marknow.nw > marknow
并从不同的位置运行:
./build/marknow ../relative/path/to/file.md
我无法获得当前的工作目录.
process.cwd()
正在返回/ tmp/something ???
如何在node-webkit中获取工作目录?./build/marknow ../relative/path/to/file.md调用的目录.
我想声明一个函数,其中最后一个参数始终是一个回调.但是当我这样做时:
interface Statement extends events.EventEmitter {
    bind(...args, callback?:(err?:Error)=>void) : Statement;
}
我收到一个错误
error TS1014: Rest parameter must be last in list
在typescript中是否可以将Rest参数作为参数列表中的最后一个参数?有什么黑客可以帮我解决这个问题吗?