小编VSO*_*VSO的帖子

如何在离开ui-state时停止$ interval?

Angular,UI路由器.在如下状态的控制器中使用$ interval:

$scope.Timer = null;

$scope.startTimer = function () { 
    $scope.Timer = $interval($scope.Foo, 30000);
};

$scope.stopTimer = function () {
    if (angular.isDefined($scope.Timer)) {
        $interval.cancel($scope.Timer);
    }
};
Run Code Online (Sandbox Code Playgroud)

问题?计时器在离开状态时仍然存在.我的理解是,当一个州离开时,$ scope和控制器基本上被"摧毁"了.因此,基于此,计时器应该停止(在控制器内,我在移动时取消计时器,这是有效的 - 但如果我导航到差异状态它会持续存在).我在这里误解了什么?

我猜因为间隔和超时是有角度的服务,它们随处可用,但我仍然不明白他们如何在未初始化的控制器中看到函数,除非它被复制.我的解决方案只是使用常规的良好的旧js间隔?

intervals angularjs angular-ui-router

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

触摸事件不返回触摸数据

编辑:"这不能在Angular UI Modals中完成"是一个有效的答案,如果实际情况如此.

这是我从触摸事件中获得的返回数据.显然缺少任何有用的触摸X/Y坐标(https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/changedTouches).这是一个毫无希望的通用问题,但是,任何想法?传递给触摸时执行的函数的"event"对象:

{
      "originalEvent": {
        "isTrusted": true
      },
      "type": "touchstart",
      "timeStamp": 1450388006795,
      "jQuery203026962137850932777": true,
      "which": 0,
      "view": "$WINDOW",
      "target": {},
      "shiftKey": false,
      "metaKey": false,
      "eventPhase": 3,
      "currentTarget": {},
      "ctrlKey": false,
      "cancelable": true,
      "bubbles": true,
      "altKey": false,
      "delegateTarget": {},
      "handleObj": {
        "type": "touchstart",
        "origType": "touchstart",
        "data": null,
        "guid": 2026,
        "namespace": ""
      },
      "data": null
    }
Run Code Online (Sandbox Code Playgroud)

现在,这是在画布中的角度UI模式,但鼠标事件工作正常.这是我的元素btw:

link: function(scope, element, attrs, model){
                //scope.canvasElem = element[0].children[0].children[0];
                scope.canvasElem = angular.element($('.touchScreen'))[0];
                scope.ctx = scope.canvasElem.getContext('2d');
Run Code Online (Sandbox Code Playgroud)

这是我如何绑定的一个例子:

element.bind('touchstart', scope.touchStart);
Run Code Online (Sandbox Code Playgroud)

编辑,这是一个用于比较的mousedown事件对象:

{
  "originalEvent": { …
Run Code Online (Sandbox Code Playgroud)

javascript touch angularjs jqlite

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

Angular 2 - 在Facebook上共享页面URL,标题和描述

我的最终目标很简单:

  1. 用户单击UI上的某个按钮.
  2. 被调用的Typescript函数click在Facebook上为用户打开一个新的共享选项卡.
  3. 共享页面的"标题"和"描述"均由我的网站提供.

我们在链接的页面上有一个包含元标记的帖子,fb知道包括作为标题/描述(如何自定义Facebook的sharer.php).问题是我使用的是Angular 2,所以我必须以某种方式在facebook看到它之前为页面动态添加元标记.

我很难想象它是如何工作的,因为我假设FB服务器将点击我的NG2应用程序并搜索元标记(因此在浏览器中打开共享链接的元数据是没有意义的,因为FB API会有所不同html的实例).

tl; dr:如何从NG2应用程序打开fb url共享对话框并提供标题/说明?

注意:"在fb上共享"页面可以像这样打开: window.open('http://www.facebook.com/sharer/sharer.php?u=www.google.com');这样可行,但没有参数.


可选附录(动态添加元标记的示例代码,有效,但无效):

var titleMeta = document.createElement('meta');
var descMeta = document.createElement('meta');

titleMeta.setAttribute('property', 'og:title');
titleMeta.setAttribute('content', 'The Rock');

descMeta.setAttribute('property', 'og:description');
descMeta.setAttribute('content', 'Foo Description');

document.getElementsByTagName('head')[0].appendChild(titleMeta);
document.getElementsByTagName('head')[0].appendChild(descMeta);
Run Code Online (Sandbox Code Playgroud)

附录2:共享者曾经允许您在网址中输入标题和说明,但根据https://developers.facebook.com/x/bugs/357750474364812/不再是这种情况.看起来它必须从元标记中提取.

javascript facebook meta-tags angular

12
推荐指数
2
解决办法
7935
查看次数

解析JWT以获得C#中的声明

我们的高级开发人员编写了以下代码,作为示例:

public class TokenParser 
{
    private Token token;

    public Token Parse(HttpRequestMessage r)
    {
        IOwinContext context = r.GetOwinContext();
        token = new Token();
        ParseData(context);
        return token;
    }

    private void ParseData(IOwinContext context)
    {
        token.Name= context.Authentication.User.Claims.Single(x => x.Type == ClaimTypes.Name).Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

(还有一个"Token.cs"类,它只有一个name属性作为字符串.)

我们解码的 JWT有效载荷如下所示:

{
  "iss": "https://someissuer.com/",
  "sub": "I want this string, atm I get it manually",
  "aud": "11543fdsasf23432",
  "exp": 33244323433,
  "iat": 23443223434
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我尝试通过类型"sub"获取声明时,没有任何内容出现(并且它不在列表中).但"sub"似乎是一个非常普遍的主张.

我在这做错了什么?我可以获得主题("子")声明吗?

编辑:对于那些推荐system.IdentityModel - 尝试使用它时出现此错误:

identityModelError

c# jwt owin

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

角度服务Restangular缓存

是否存在角度服务将缓存Restangular/$ http调用而未明确告知这样做的情况?例如,我有一个服务做这样的事情:

    function getSomeThings(){
        return Restangular.one('things').get().then(function (thing) {
            return thing;
        });
    }
Run Code Online (Sandbox Code Playgroud)

每次页面刷新时都会调用此服务(它在UI路由器路由解析中).是否有可能每次都不会进行此调用,但Angular会以某种方式缓存这些调用,而没有明确告知这样做?

我熟悉如此明确的缓存:

RestangularProvider.setDefaultHttpFields({cache: true});
Run Code Online (Sandbox Code Playgroud)

这不是意图.我的问题是角度服务是否具有一些固有的缓存逻辑,如果是,则如何覆盖它.

angularjs restangular

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

检查MongoDb C#Driver 2.0中的字段是否等于空

我有一个非常简单的mongo查询:

db.items.find( { MyFieldName: { $exists: true, $eq: null } } );
Run Code Online (Sandbox Code Playgroud)

不是需要解释它,而是找到具有MyFieldName该字段值的文件null.看起来这对C#驱动程序来说非常简单:

var fieldExistsFilter= Builders<BsonDocument>.Filter.Exists("MyFieldName", true);
var fieldValueIsNullFilter = Builders<BsonDocument>.Filter.Eq("MyFieldName", null); 
Run Code Online (Sandbox Code Playgroud)

但是,fieldValueIsNullFilter如果我尝试检查null,则第二个过滤器不会构建.如果我写"testString"或类似的东西,它工作正常,但不是null.

TL:博士; version:如何在MongoDb C#驱动程序中创建一个过滤器来检查字段是否为空?

注意,我检查了其他答案,他们建议$ exists做我想要的 - 它没有,按照mongo docs:

如果为true,则$ exists匹配包含该字段的文档,包括字段值为null的文档.如果为false,则查询仅返回不包含该字段的文档.

c# mongodb

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

极简主义Angular2设置

我很难理解在Typescript中使用Angular2的基本功能真正需要什么.如同,极简主义项目是什么样的?在"真实"项目中我绝对需要具有哪些依赖关系(不仅仅是"Hello World",而且还不复杂)?

我意识到这个问题有答案,例如,在有角度的网站上,但它们似乎包括很多绒毛.角度书似乎已经过时了.例如,我在angular2上运行npm install并获得了与ng-book2列出的不同的软件包(尽管如此,我得到了一段时间,因此它可能已经更新).

  1. 安装节点或确认您有最新消息!即使是相对较新的装置也可能已经过时了.在Windows上重新安装节点的最简单方法是只需访问该站点并再次下载安装程序.
  2. npm install angular2
  3. npm install -g typescript
  4. ???

我正在为此付出一笔赏金,所以获得一个步骤列表和一些带有基本功能的示例代码会很不错.我也对项目中需要引用的内容及其原因感兴趣.(例如,我从Angular 1注意到的一个区别是人们似乎引用了Angular 2文件夹中的npm安装的多个文件,为什么?)

PS最好使用Webpack,或者解释SystemJs和WebPack是否可以被忽略以进行极简主义设置.

angular

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

从DateTimeOffset中删除时区偏移量

DateTimeOffset testDateAndTime =
    new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0));

//CLEAN TIME AND DATE 
testDateAndTime = testDateAndTime.DateTime.Date; 

var datesTableEntry = db.DatesTable.First(dt => dt.Id == someTestId);
datesTableEntry.test= testDateAndTime;

db.SaveChangesAsync(); 
Run Code Online (Sandbox Code Playgroud)

结果数据库: 2008-05-01 00:00:00.0000000 -04:00

如何(在保存之前从代码中-4:00转换+00:00)?

我试过了:

public Task<DateTimeOffset> SetTimeZoneOffsetToZero(DateTimeOffset dateTimeOffSetObj)
{
    TimeSpan zeroOffsetTimeSpan = new TimeSpan(0, 0, 0, 0, 0);
    return dateTimeOffSetObj.ToOffset(zeroOffsetTimeSpan);
}
Run Code Online (Sandbox Code Playgroud)

它没有做任何事情.

最终目标只是拥有一个没有时间或时区偏移的日期.我不想将时间转换为另一个时区(即我不希望它从testDateAndTime时间减去4小时并删除设置时间偏移00:00:00.0000000,我只是想将它设置为偏移+00:00).我想要当前日期,零偏移.

编辑:

以下是其他地方的建议:

DateTimeOffset testDateAndTime =
    new DateTimeOffset(2008, 5, 1, 8, 6, 32, new …
Run Code Online (Sandbox Code Playgroud)

c# timezone datetimeoffset

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

Angular2中对Http的承诺vs Observable?

从本质上讲,标题所说的是,为了进行http调用,是否有任何理由使用可观察量而不是承诺?看起来像不必要的过度复杂,因为所有的调用都会成功或失败,并且几乎没有真正的理由取消它.要求这是典型的用例,而不是典型的可观察性销售 - 去抖动(具有讽刺意味的是,无论如何,ng-debounce确实很好,而不会进行无用的调用).

http promise observable angular

8
推荐指数
1
解决办法
9274
查看次数

Get-ChildItem不适用于Include

在此输入图像描述

我正在遵循以下示例:

Get-ChildItem c:\scripts\*.* -include *.txt,*.log
Run Code Online (Sandbox Code Playgroud)

https://technet.microsoft.com/en-us/library/ee176841.aspx

是什么赋予了?当我尝试使用include时,为什么不取回我的test.txt文件列表?

作为旁注,是什么c:\scripts\*.*.它似乎在说包含任何具有任何格式名称的文件.但是不包含在指定中吗?无论如何,更感兴趣的是为什么我看似基本的代码不起作用.

powershell

8
推荐指数
1
解决办法
2999
查看次数