我已经尝试按照ng-directive-testing repo 的格式来编写我编写的指令.当用户点击元素时,该指令基本上呈现叠加.这是指令(简化):
mod.directive('uiCopyLinkDialog', function(){
return {
restrict: 'A',
link: function(scope, element, attrs) {
var $elm = angular.element(element);
element.bind('click', function(event) {
$elm.addClass('test');
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
我写的测试看起来像这样:
describe('pre-compiled link', function () {
beforeEach(mocks.inject(function($compile, $rootScope) {
scope = $rootScope;
element = angular.element('<span class="foo" ui-copy-link-dialog="url"></span>');
$compile(element)(scope);
scope.$digest();
}));
it("should change the class when clicked", function () {
element.click(); // this returns "'undefined' is not a function"
element[0].click(); // so does this
$(elm).click(); // this uses jquery and doesn't *seem* to fail …
Run Code Online (Sandbox Code Playgroud) 我在Windows上安装了Tomcat 7,我正在部署我的应用程序.我需要为服务器上运行的应用程序设置几个JVM args.在网上搜索时,我发现两个(如果算上Windows服务的话有三个)阵营:
对于那些使用eclipse的人:
双击服务器>打开启动配置>参数选项卡
对于那些使用tomcat的启动脚本:
创建setenv.bat(或Linux的setenv.sh)并设置CATALINA_OPTS或JAVA_OPTS
但是,它们似乎是相互排斥的.在eclipse中设置参数(如果可以告诉它们存储的位置,则为+1)不会影响启动脚本,并且在eclipse中启动时设置setenv.bat属性不会影响服务器.两者都是单独的.
两者都指向相同的安装,并且在服务器的概述页面上的eclipse中,我选择了"使用Tomcat安装(控制Tomcat安装)".
我有一个pom文件,其中一些依赖项的版本号依赖于pom文件的设置中指定的项目版本属性.我可以通过命令行覆盖它吗?如果是这样,怎么样?
这是长篇故事:
我们目前正在将我们的项目转移到maven,但我们还没有完成任何方式.有多个模块仍然没有使用maven构建,因此是我们项目中的依赖项(它们通过ant构建到jar中).发布后,我们希望构建所有这些jar并包含与父项目相同的版本号.对于发布,执行两个步骤(直到我们可以使用maven获取所有内容)
在第二步中,命令行参数用于指定发行版:
mvn release:prepare -DreleaseVersion=12.12.4.0 -DdevelopmentVersion=12.12.4.1-SNAPSHOT -Dtag=iv-12.12.4.0
Run Code Online (Sandbox Code Playgroud)
我想用指定的版本更新pom文件.但是,运行此命令时,仍在使用pom文件(12.12.4.0-SNAPSHOT)中的版本.这无法"检查快照的依赖项和插件"步骤,我需要解析仍然具有maven版本属性使用的12.12.4.0-SNAPSHOT版本的jar.
这让我想到了如何覆盖它的原始问题,以便版本解析为命令行中指定的版本.可以让我解决的其他问题是:如何在此检查之前允许maven发布插件更新pom文件?如何跳过快照检查(不可取)
我可以在pom文件中创建一个我可以覆盖的属性,但是我必须在pom文件中的两个位置维护版本号.
思考?
当我尝试在eclipse中保存我的js文件时,此错误出现在警告框中:
编译单元名称必须以.java或其中一个已注册的类Java扩展名结尾
在断点视图中,我看到:
/module-foo/src/main/resources/frontend/foo/foo_base.js [entry] - ___anonymous()
Run Code Online (Sandbox Code Playgroud) 当我去我的应用程序时https://localhost/my-app/resources/index.html
,我有逻辑进入我自定义的默认状态.但是,当我想直接转到我的应用程序的特定部分(即https://localhost/my-app/resources/index.html#/orders/draft
)时,状态未设置(模板也未加载到ui-view指令中).一旦初始加载完成(设置了默认状态),那么我可以直接在网址内容中添加内容.
我想我错过了一些关于如何在我的应用程序中加载内容的基本概念,但我希望状态会被设置,因为url是在 $location.url()
我的代码片段用于处理初始加载时的状态:
$http.get("Navigation").then(function(response){
var navigationObjects = response.data,
directUrl = $location.url(),
stateName = null;
scope.availableStates = ims360RouterStateService.getAvailableStates(navigationObjects);
if (!directUrl)
{
scope.updatePrimaryState(scope.availableStates[0]);
}
else
{
//TODO there's probably a better way to do this
//parsing out the state name, requires that the state name matches the url, this fails when I have a place holder (such as an id to a resource)
stateName = directUrl.substring(1).replace(/\//g, ".");
$state.go(stateName);
}
});
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我从服务器获取导航对象,确定用户可以访问哪些ui-router状态.然后我所有定义的状态都被过滤到可用状态,这些是我用于导航ui的状态.
另外,"updatePrimaryState(...)包含对$ state.go(...)的调用
那么,为什么状态没有设置初始负载?如果这是预期的行为,那么将用户引导到指定的url的好方法是什么?
UPDATE
我创建了一个显示预期行为的plunker(http://plnkr.co/edit/m9gQLOZmqaAY88wSc6wC?p=preview …
我们使用jenkins和在Windows 7上运行的许多jenkins从节点.通过jenkins我们开始在从节点上运行karma测试以在实际浏览器上运行我们的jasmine测试.在Chrome自动更新到版本"38.0.2125.104 m"之后,上周突然停止了工作(karma无法捕获浏览器).这是我们的日志:
[INFO] --- maven-karma-plugin:1.8:start (default-cli) @ module-translation ---
[INFO] Executing Karma Test Suite ...
[INFO] cmd /C karma start C:\dev\util\jenkinsMaster\workspace\ci_module_translation_browser\translation\target\test-classes\frontend\thirdParty\js\com\verisk\underwriting\config\karma-config-module\1.0.3\karma-config-module-1.0.3.js --browsers Chrome --single-run
INFO [karma]: Karma v0.12.5 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [launcher]: Chrome have not captured in 60000 ms, killing.
INFO [launcher]: Trying to start Chrome again (1/2).
WARN [launcher]: Chrome have not captured in 60000 ms, killing.
INFO [launcher]: Trying to start Chrome again (2/2).
WARN [launcher]: Chrome have not captured …
Run Code Online (Sandbox Code Playgroud) 如何加载logback.xml文件?具体来说,什么时候加载?
我在网上看到了这样的解释:
但是没有提到何时加载.是第一次调用日志语句吗?
我正在创建一个管理页面,其中包含一些我想要动态设置的logback属性,其中一个是我发送系统警报的管理员电子邮件.api for the SMTPAppender
有添加到"to"地址列表的方法,或者将它们作为列表获取,但我没有找到任何要清除的内容,删除任何内容或更新它们.我该怎么做?
我目前看到两种选择:
我正在向前推进(2),但如果有更好的方法请发帖.
我想开始使用tslint 4,但离子app-scripts还不支持它:https://github.com/driftyco/ionic-app-scripts/issues/649
我已成功配置lint脚本(在package.json中)ng lint
而不是ionic-app-scripts lint
在运行时运行npm run lint
:
"scripts": {
"build": "ionic-app-scripts build",
"lint": "ng lint",
...
}
Run Code Online (Sandbox Code Playgroud)
但是,此更改不会影响构建脚本.构建仍然运行ionic-app-scripts lint
而不是ng lint
.
是否可以配置在构建脚本中运行哪些命令?