我试图为我的程序设置一些简单的标志参数,但无法弄清楚如何访问它们.我有argparser:
parser = argparse.ArgumentParser(description='Simple PostScript Interpreter')
parser.add_argument('-s', action="store_true")
parser.add_argument('-d', action="store_true")
parser.parse_args(sys.argv[1:])
Run Code Online (Sandbox Code Playgroud)
程序应该使用sps.py -s,sps.py -d或者sps.py在命令行中.然后我只想检查-s标志是否已设置或-d标志是否已设置.如果两者都未设置,则默认为-d.
如何访问解析器设置的布尔值,我需要做什么?
我现在对Angular有相当的经验,但这似乎是在DOM事件传播方式的较低层次上发生的事情.出于某种原因,在短短我的应用程序有一部分ng-focus和ng-blur在同一input,但ng-focus事件触发两次,ng-blur从未火灾.
<input type="text" ng-focus="doFocus()" ng-blur="doBlur()" />
Run Code Online (Sandbox Code Playgroud)
然后在我的控制器中
$scope.doFocus = function(){
console.log('focus');
}
$scope.doBlur = function(){
console.log('blur');
}
Run Code Online (Sandbox Code Playgroud)
当我检查我的控制台时,我看到2个"焦点"而没有"模糊"消息......我已经在我的网站的其他部分测试了这个并且它在其他一些部分中有效.我的猜测是它与DOM有关,但是我甚至试图将页面上的所有东西拉出来,除了input它仍然无法正常工作.有谁知道是什么原因引起的?
UPDATE
经过一些调试后,我注意到焦点事件在浏览器范围内被触发一次,但事件在AngularJS的世界中触发了两次.我使用Chrome Dev Tools设置了所有Focus事件的断点,它只会击中一次,但是如果我$event在控制台中记录Angular ,我可以看到与Angular中触发两次相同时间戳的EXACT相同的$事件.
我正在尝试更多地了解JavaScript OO编程,但我看到了创建类"类"对象的冲突方法.我想知道这两种方法是否存在实质性差异:
方法1
function Person(name){
this.name = name;
this.setName = function(val){
this.name = val;
}
this.getName = function(){
return this.name
}
}
var John = new Person("John");
Run Code Online (Sandbox Code Playgroud)
方法2
function Person(name){
var exports = {};
exports.name = name;
exports.setName = function(val){
this.name = val;
}
exports.getName = function(){
return this.name
}
return exports;
}
var Bob = Person("Bob");
Run Code Online (Sandbox Code Playgroud)
我已经看到这两种方法用于创建复杂的JavsScript对象.我甚至看过大型JS插件,比如jQuery使用方法2而不是方法1来设置他们的jQuery函数.其中一种比其他方式更快或更有效吗?
我正在创建一个有助于上传CSV文件的指令.我正在使用a <input type="file" ng-hide="true"/>和本机JavaScript FileReader()来执行此操作.当我使用本机选择文件时,一切正常input,但我尝试使用自己的"浏览"按钮自定义文件控件.问题是,当我尝试这样做时,我得到$ apply已经在进行中错误.
这是我的指示
app.directive('skUploader', function ($timeout) {
return {
restrict: 'A',
replace: true,
template: '<div>\
<input type="file" class="uploadControl" ng-hide="false" />\
<input type="text" ng-model="selectedFile" />\
<button type="button" class="btnPlain" ng-click="triggerBrowse()">Browse</button>\
<button type="button" class="btnOrange fRight" ng-click="uploadCSV()">Upload</button>\
<button type="button" class="btnPlain fRight" ng-click="cancel()">Cancel</button>\
</div>',
link: function (scope, elem, attr, ctrl) {
var uploadControl = elem.find('input[type=file]');
var payload = null;
var type = attr.skUploader;
scope.selectedFile = null;
scope.uploadCSV = function () {
$timeout(function () {
alert('Upload Successful');
}, …Run Code Online (Sandbox Code Playgroud) 我注意到在完全刷新我的角度应用程序时,状态转换(我使用的是ui-router但是也可能类似于原生的Angular路由)在第一次访问时有轻微的延迟,因为浏览器执行GET请求来检索与该给定状态关联的HTML部分.所有后续访问基本上是即时的,但我想知道是否有办法告诉Angular在第一次进入页面时预加载所有需要的部分?
他们不这样做是因为如果并行获取的话,太多的部分会使用太多的带宽吗?
几个月来我一直在使用相同的工作流程在我的ASP .NET站点中添加新页面,但突然间我遇到了尝试.ascx在WebStorm中保存文件的问题.
我.ascx在VS中创建了页面然后保存了它.然后我转到WebStorm开始开发,我无法保存这些新文件.我收到此错误:
Following errors occurred on attepmt to save files:
C:\...\Management\Management.ascx___jb_bak___ (Access is denied)
Run Code Online (Sandbox Code Playgroud)
我没有得到这个文件是什么以及为什么它无法保存... jb使它看起来像JetBrains文件,但这个文件实际上并不存在于文件系统中.我所有其他文件都运行得很好.它只是这个新文件突然.
这个错误甚至意味着什么......没有有价值的信息
我最近在我们的Web应用程序上构建了一个使用AngularJS的功能,我在IE 11中遇到了一些问题,而不是正确地$apply()对DOM进行数据更改.出于某种原因,这种情况有时只会发生,并且在我尝试调试问题时永远不会发生,这使得它看起来像是时间问题.
这是在问题发生时调用的函数.
$scope.createThrottling = function (sources) {
MYAPP.modals.Throttling('New', sources, API, function () {
$scope.isLoading = true;
$scope.$apply();
API.Migrations.getThrottles({ id: jQuery.getUrlVar('id') }, function (data) {
$scope.Throttles = data.Throttles;
$scope.isLoading = false;
// THE PROBLEM IS RIGHT HERE
});
});
}
Run Code Online (Sandbox Code Playgroud)
上面的评论显示问题似乎源于何处.此时,在执行代码时,Angular应自动检查更改$scope.Throttling,然后相应地更改DOM,但是,出于某种原因,在IE 11中,在第一次访问页面时绑定未发生.
页面的后续刷新会导致绑定工作,但这似乎很奇怪.好像$scope.$apply()是API.Migrations.getThrottles完成之后需要的,但是我不能这样做,因为Angular会抛出一个JS错误,说它已经消化了.
有些事情需要注意:
API.Migrations.getThrottles调用是在MYAPP.modals.Throttling完全在Angular之外的模块的回调函数中吗?任何帮助找出造成这个错误的原因将不胜感激!
谢谢
我有一个应用程序应该根据一些API数据服务于不同的状态.如果我的应用程序的状态配置如下所示:
$stateProvider.state('order', {
url: '/order/{serviceId}',
controller: 'OrderController',
abstract: true,
resolve: {
OrderResolve: function(Order, $stateParams){
return Order.fetch($stateParams.serviceId);
}
}
}).state('order.sharepoint', {
url: '/sharepoint',
abstract: true,
controller: 'SharePointController'
}).state('order.sharepoint.index', {
url:'',
controller: 'SharePointServiceController'
}).state('order.sharepoint.setup', {
url:'',
controller: 'SharePointSetupController'
}).state('order.sharepoint.confirm', {
url:'',
controller: 'SharePointConfirmController'
});
Run Code Online (Sandbox Code Playgroud)
然后我希望默认2个状态中的1个基于OrderResolve对象中的值.基本上,我使用resolve获取API数据来告诉我此用户是否已激活SharePoint服务.如果OrderResolve.hasSharepoint == true那时我想默认为order.sharepoint.index状态,但如果OrderResolve.hasSharepoint == false那时我想默认为order.sharepoint.setup状态.第一个状态显示SharePoint数据,第二个状态只是"设置"Sharepoint服务的表单.
有没有一种简单的方法来实现这种功能?
今天,我正在使用webpack来仅转换我的核心业务逻辑代码,但仍对所有外部库(如jQuery,AngularJS等)使用CDN。我想通过使用将这些供应商库移入webpack SplitChunksPlugin,但是当我遵循一个示例时我在这里找到了要创建的供应商捆绑包,但与此同时它还创建了一些我不确定的额外文件。
对于entry我在webpack配置中声明的每个模块,webpack都不还会创建这些文件的“运行时”版本”
例如,我company.productA.core.bundle.js已经使用了一段时间,但是在为拆分块添加配置后,我现在也得到了company.runtime~productA.core.bundle.js。Webpack对我创建的其他8个模块做了同样的事情。
我尝试搜索这些内容,但是在webpack文档和SO中都没有看到关于它们的任何信息。
有人可以向我解释这些文件的含义吗?
在http-proxy-middleware库中,文档指出您可以使用该target选项来指定要代理请求的位置。但是,它们还允许您使用该router选项来指定将用于在运行时从功能上解析目标的函数。
文档:https : //www.npmjs.com/package/http-proxy-middleware
我正在使用 TypeScript,如果我查看代理的声明文件,我可以看到:
您可以在此处看到router和target都可以为空。我的假设是,如果你使用一个,另一个可以省略,但你总是至少需要一个。
但是,如果我使用这样的router属性:
app.use("/pipe", proxy({
changeOrigin: true,
router: (req: IIncomingMessageWithCookies) => {
return "https://www.google.com";
}
}));
Run Code Online (Sandbox Code Playgroud)
并省略target,然后在运行时我收到此错误:
> node ./dist/app.js
C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\config-factory.js:43
throw new Error(ERRORS.ERR_CONFIG_FACTORY_TARGET_MISSING)
^
Error: [HPM] Missing "target" option. Example: {target: "http://www.example.org"}
at Object.createConfig (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\config-factory.js:43:11)
at new HttpProxyMiddleware (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\index.js:17:30)
at module.exports (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\index.js:4:10)
at Object.<anonymous> (C:\SkyKick\SkyKick.SEWR\src\dist\app.js:8:18)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load …Run Code Online (Sandbox Code Playgroud) angularjs ×5
javascript ×3
http-proxy ×1
node.js ×1
proxy ×1
python ×1
typescript ×1
webpack ×1
webstorm ×1