我正在为第三方js库创建一个TypeScript定义文件.一项所述的方法允许对选择对象,并且选项对象的属性中的一个接收来自列表的字符串:"collapse"
,"expand"
,"end-expand"
,和"none"
.
我有一个options对象的接口:
interface IOptions {
indent_size?: number;
indent_char?: string;
brace_style?: // "collapse" | "expand" | "end-expand" | "none"
}
Run Code Online (Sandbox Code Playgroud)
接口是否可以强制执行此操作,因此如果您包含IOptions
具有该brace_style
属性的对象,它将只允许可接受列表中的字符串?
使用moment.js(使用moment-timezone),我想获得当前语言环境的时区缩写(例如PST).
var now = Date.now(); // 1423254073931
var zone = moment(now).zone(); // 480
var timezone =
Run Code Online (Sandbox Code Playgroud)
我如何获得时区缩写?我在文档和其他地方看到的所有示例都选择了一个特定的区域"America/New_York"
.
从文档,它看起来像我可以得到信息的的区段对象具有zone.abbr(timestamp)
,但我不知道如何来访问区域对象.
我试图在AngularJS应用程序中复制Windows Phone Ui.以下是Windows Phone Ui 的示例.
一个有趣的事情是面板是无限可刷卡的.您可以继续滑动并在第一个面板上结束.
为了实现无限滑动,我复制了第一个和最后一个面板,并在原始面板之前和之后添加它们,如下所示:
如果您滑动到复制的面板(如"3"或"1"):
滑动完成后,您将立即重定向到真实面板.这种情况在用户不知道的情况下发生,因为没有动画.
问题是,面板可以有ng-controller
,ng-repeat
,ng-model
,或任意数量的在其中创建范围的事情.当我复制标记时,会创建一个与原始范围相同但不保持同步的新范围.如何保持面板数据同步?
或者,有没有另一种方法来实现这一点,不涉及重复标记?
这些选项都不是理想选择,所以我正在寻找其他想法.但如果没有任何好的选择,#2对我来说似乎是最好的计划.
我有一个带颜色功能的d3饼图:
var color = d3.scale.ordinal()
.range(['#0075B4', '#70B5DC']);
Run Code Online (Sandbox Code Playgroud)
如果只有两个值/件,则可行.但如果还有更多,我想在两者之间选择颜色.
在上面,有3个馅饼,标有"成本3"的部分将具有介于#0075B4
和之间的颜色#70B5DC
.
这可能与d3有关吗?这是我到目前为止的一个方面:http://jsfiddle.net/9ruzntrr/1/
简单的父模块
angular.module('app', ['ngRoute', 'app.services']);
Run Code Online (Sandbox Code Playgroud)
简单的子模块
angular.module('app.services');
Run Code Online (Sandbox Code Playgroud)
我们可以访问ngRoute
此服务,因为它的依赖性app.servies
是依赖性app
.
angular.module('app.services').factory('myService', function($route) {
// used $route in here
});
Run Code Online (Sandbox Code Playgroud)
在测试服务时jasmine
,模拟app.services
模块的最佳方法是什么,以便我可以访问$route
?
我能想到的最好的方法是:
beforeEach(function(){
module('app');
module('app.services');
});
Run Code Online (Sandbox Code Playgroud)
但最好只需注入ngRoute
而不必模拟app
模块.
如何将我自己的javascript文件导入或包含到gulpfile中?
Gulp是通过npm安装的,所以我可以包含其他npm模块,如下所示:
var sass = require('gulp-sass');
Run Code Online (Sandbox Code Playgroud)
所以我想做一些事情:
var karmaConfig = require('karma-config.js');
Run Code Online (Sandbox Code Playgroud)
目录结构如下:
node_modules/
gulpfile.js
package.json
karma-config.js
Run Code Online (Sandbox Code Playgroud)
所以gulpfile与我要导入的文件处于同一级别.
在AngularJS中,有没有办法在不使用scope
或指令的情况下将字符串模板转换为标记?
我有一项服务,允许我动态创建新的角度应用程序.它为新应用程序构建DOM,然后angular.boostrap
在元素上运行.
目前,DOM是这样创建的:
var element = document.createElement('div');
element.setAttribute('app', '');
element.setAttribute('size', 'small');
...
element.className = 'app layout--relative';
Run Code Online (Sandbox Code Playgroud)
有许多属性,类,子元素等,因此以这种方式创建标记并不理想.最好使用模板.
通常我会使用$compile
将字符串模板转换为标记,但因为我还没有运行angular.bootstrap
,所以没有scope
使用$compile(template)(scope);
这样可行,但根元素上的所有属性和类都需要单独添加.
var element = document.createElement('div');
element.innerHTML = template;
Run Code Online (Sandbox Code Playgroud)
这有效,但我更愿意完全避免范围:
var scope = $rootScope.$new();
var element = $compile(template)(scope);
scope.$destroy();
Run Code Online (Sandbox Code Playgroud)