小编Eri*_*onn的帖子

在AngularJs中设置动态范围变量 - 范围.<some_string>

我有一个字符串,我从一个routeParam或一个指令属性或其他什么,我想基于此在范围上创建一个变量.所以:

$scope.<the_string> = "something".
Run Code Online (Sandbox Code Playgroud)

但是,如果字符串包含一个或多个点,我想将其拆分并实际"向下钻取"到范围内.所以'foo.bar'应该成为$scope.foo.bar.这意味着简单版本将无法正常工作!

// This will not work as assigning variables like this will not "drill down"
// It will assign to a variables named the exact string, dots and all.
var the_string = 'life.meaning';
$scope[the_string] = 42;
console.log($scope.life.meaning);  // <-- Nope! This is undefined.
console.log($scope['life.meaning']);  // <-- It is in here instead!
Run Code Online (Sandbox Code Playgroud)

在根据字符串读取变量时,您可以通过执行此操作获得此行为$scope.$eval(the_string),但在分配值时如何执行此操作?

scope angularjs

96
推荐指数
4
解决办法
12万
查看次数

Angularjs,在路线之间传递范围

我有一种形式可以延伸几页(可能不太理想,但就是这样).我希望在整个表单中有一个范围可以随着时间的推移填充,这样如果用户在步骤之间来回切换,则很容易记住状态.

所以我需要做非常伪代码:

  1. $scope.val = <Some dynamic data>
  2. 单击链接并路由到新模板(可能使用相同的控制器).
  3. $scope.val 应该仍然与最后一页上的值相同.

以某种方式持久化数据范围是正确的方法,还是有其他方法?您是否可以创建一个在路由之间具有持久范围的控制器,当然除了将其保存在数据库中之外.

scope routes controllers angularjs

88
推荐指数
3
解决办法
7万
查看次数

NodeJ中的DynamoDB putitem - 对象数组

我正在尝试从AWS Lambda设置一个小的api到DynamoDB,我无法弄清楚是否以及如何将对象数组写入密钥.

我有一个像这样的对象

{
    "teamName": "Team Awesome",
    "members": [
        {
            "email": "person-1@example.com",
            "name": "Bob"
        },
        {
            "email": "person-2@example.com",
            "name": "Alice"
        }
    ]
} 
Run Code Online (Sandbox Code Playgroud)

成员数组给了我一些问题,在文档中它看起来可以考虑列表类型来完成,但是没有例子如何做到这一点,并且我没有办法尝试它.

那么可以用这种格式写一些东西吗?在这种情况下你怎么做呢?

示例代码 - 我该怎么做?

var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB();

exports.handler = function(event, context) {
    var tableName = "GDCCompetition";
    var datetime = new Date().getTime().toString();

    DynamoDB.putItem({
        "TableName": tableName,
        "Item": {
            "datetime": {
                "N": datetime
            },
            "teamName": {
                "S": event.teamName
            },
            "members": ???
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

node.js amazon-dynamodb aws-lambda

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

在AngularJs中修饰ng-click指令

我一直在寻找修改AngularJS ng-click指令来添加一些额外的功能.我对使用它有什么不同的想法,但一个简单的方法是将Google Analytics跟踪添加到所有ng-click,另一个是防止双击.

要做到这一点,我的第一个想法是使用装饰器.所以像这样:

app.config(['$provide', function($provide) {
  $provide.decorator('ngClickDirective', ['$delegate', function($delegate) {
    // Trigger Google Analytics tracking here
    return $delegate;
  }]);
}]);
Run Code Online (Sandbox Code Playgroud)

但是这不会起作用,因为装饰器会在实例化时触发,而不是在满足指令中的表达式时触发.因此,在这种情况下,它会在带有指令的元素加载时进行分析,而不是在单击元素时进行分析.

所以关于真正的问题.装饰器是否有某种方法可以获得指令实例化的元素?如果我可以,从委托,到达元素,我可以绑定我自己的点击事件,以触发除ng-click之外.

如果没有,您将如何在所有ng-clicks上添加内容?

decorator angularjs angularjs-directive angularjs-ng-click

15
推荐指数
2
解决办法
4594
查看次数

克隆AngularJs中的元素(绑定和所有)

有没有办法克隆AngularJS中的元素,其绑定完好无损?

我正在尝试为图库创建图像预加载器.图像加载到屏幕外,然后根据其大小移动到三列中的一列.所以它实际上确实需要用JavaScript移动,因为我不知道它加载了它应该进入哪个容器.

所以假设我有类似的东西:

<img ng-src="/some/{{image}}" ng-click="doStuff()" />
Run Code Online (Sandbox Code Playgroud)

我希望克隆与此相同,ng-click绑定完好无损.我遇到的问题是,如果我使用element.clone().appendTo(someOtherElement)克隆元素,那么ng-click绑定将在此过程中丢失.当元素插入DOM时,Angular没有意识到它需要创建新的绑定.

我一直在尝试使用$ compile,但我无法弄清楚如何使用它来克隆现有元素而无需手动复制所有属性.

克隆是由一个指令完成的,我只使用Angular(没有jQuery保存Angular中包含的内容).

clone angularjs angularjs-directive

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

Google分析(通过代码管理器)在第一次网页加载后会丢失对访问者的跟踪

我在使用Google代码管理器(GTM),Google分析(GA)和Google adwords时遇到了一个非常奇怪的问题.到目前为止,我无法解决它.

设置:
我们有一个单页应用程序(骨干和牵线木偶),我们使用GTM使用标准dataLayer.push事件(如果相关,还有电子商务事件)将虚拟网页浏览推送到GA.此设置通常正常.

问题:
问题是用户来自adwords,带有gclid标签.跟踪这些用户的第一次网页浏览并正确归因于adword广告系列,但只要他们点击网站上的任何链接,他们似乎就会在GA中获得新会话,然后原始会话计为退回.所有网页都在同一个网域上,我们已经确认这些广告系列用户实际上没有弹跳,他们仍然在网站上,但在某种程度上被GA错误标记.

IE

  1. 用户使用adwords中的gclid标记进入网站.
  2. 该访问被跟踪为谷歌cpc流量.
  3. 用户单击页面中的链接,或触发主干路由器.navigate功能以加载新内容.
  4. 来自(2)的原始会话结束并计入已退回,即使用户只是跟随站点内的链接.
  5. 创建一个新会话,不计入cpc-traffic(因为新页面没有gclid标记).

重要说明:此问题仅适用于广告系列访问者!没有广告系列标记的用户在点击链接时不会获得新会话.

以前有没有人遇到这样的问题?在单页应用上通过GTM使用adwords时是否有任何特殊事项需要考虑?什么可能导致谷歌分析失去这样的会议?

有问题的网站是https://fyndiq.se,在移动设备中(它使用动态服务,问题不在桌面版本上,而不是SPA).


编辑 - 问题摘要和当前不完善的解决方案

我们已经设法达到了可接受的水平,但它远非完美.由于解决方案全部在评论中展开,我想我会在这里总结一下结果.

问题确实是Google Analytics为Adwords用户创建了新会话,从而失去了对广告系列的跟踪.Analytics将在几种不同条件下为用户启动新会话.最常见的情况是当用户处于非活动状态30分钟,用户从新广告系列进入网站时,以及用户从已知搜索引擎进入网站时.

最后两个是这里的问题.Google根据广告系列代码(gclid或utm_)和引荐来源的组合判断这些条件,并且在单个页面上应用引荐来源不会更新!

IE

  1. 用户通过adwords进入www.example.com.分析网页内容将包含gclid广告系列代码和Google作为引荐来源.
  2. 用户单击内部链接,SPA处理路由.
  3. 广告系列代码已移除,在非SPA上,引荐来源将更改为www.example.com,但由于这是SPA,因此没有真正的网页加载,而引荐来源仍为Google.
  4. Google Analytics获取综合浏览量,发现广告系列和引荐来源组合已更改且引荐来源属于搜索引擎,并假定用户离开了网页,然后从搜索字词中重新输入.
  5. Google Analytics(分析)会在没有广告系列的情况下启动新会话,并将会话定义为自定义流量(因为它相信从谷歌搜索匹配中输入的用户),并且广告系列会话是反弹的.

为了防止这种情况,我们最终做了两件事.首先,我们手动向Google跟踪代码管理器发送引荐来源(如果没有发送,则默认为document.referrer,如上所述,不会更新).在第一个页面加载中,我们使用真正的引荐来源,以便正确地归属命中.在任何后续页面加载中,我们将自己的域名作为引荐来源发送,就像它在非SPA上一样.这告诉分析我们正在内部路由并且它不应该启动新会话.

引用者可以像发送虚拟网页浏览网址一样发送给GTM,并且(在写作的那一刻)设置在与url和pagetitle相同的位置.我们确保在发送到分析的所有事件上完成此操作,而不仅仅是网页浏览.

第二件事来自下面的Jareds答案,我们确保设置页面而不仅仅是位置(见下文为什么这些不同).可以在GTM的高级设置中设置页面.只需要这两件事中的一件,但我们两件事都只是为了安全.

这似乎给了我们大部分正确的数据.与adwords的数据相比,我们仍然缺少大约15%的cpc交易,但我们很难知道我们到底有多接近.Adwords和analytics不会测量相同的东西,因此可以预期差异,差异的大小会因页面而异.然而,对我们来说,它足以用于测试和营销,因此它现在必须要做.


如果有人发现更一致的解决方案,请写一个新的答案!

google-analytics google-adwords backbone.js single-page-application google-tag-manager

7
推荐指数
1
解决办法
2967
查看次数

LinkedIn验证上的Oauth token_rejected - 间歇性

我和Oauth和LinkedIn有问题.大多数情况下,使用Oauth验证工作正常,但有时(类似于10或20中的1)LinkedIn将返回token_rejected.

到目前为止,我已经检查了时间戳以确保服务器不同步(它不是)并且我发送的访问令牌没有格式错误(尽管这应该始终给出错误).

我有点迷失在哪里离开这里.我看到其他人有这种间歇性问题,但没有解决方案.有谁知道从哪里开始排除故障?

这是一个使用apache的django应用程序,它具有任何相关性.

django oauth linkedin access-token

6
推荐指数
1
解决办法
820
查看次数

更改Facebook应用程序请求的通知文本

我注意到一些Facebook应用程序,如BranchOut,已经定制了通知消息.当发送应用请求并显示在左上方通知中心时,通知上的文本似乎是他们自己控制的内容,而不是默认的"名称发送给您的请求".

从我发现的文档中,这是不可能的.自定义消息仅针对已使用该应用的用户显示,否则您将获得Facebook的默认邀请消息.

有谁知道他们是怎么做的?他们只是与Facebook达成协议,还是发送除应用请求之外的其他内容?

facebook facebook-app-requests

5
推荐指数
1
解决办法
2072
查看次数

CSS 列数列的高度不同

我正在尝试创建图像的砌体网格,总体思路是使用列计数来实现此示例

我有三列,其中有一堆图像,CSS 和 HTML 与链接中的相同。问题是列无法正确对齐。最右边的一列通常比其他列短得多。显然,除非图像大小相同,否则列永远不会完美对齐,但差异远大于此。有时,前两列各容纳十个图像,但第三列仅容纳两个(图像大小相似),这意味着您可以轻松地将一些图像从第一列和第二列移动到第三列以获得更好的对齐效果。这个结果似乎违背了列计数的想法。

如果您将某些图像更改为更小的图像,上面的链接也会发生这种情况。是否只是列计数仍然存在错误且不应该使用,或者是否有一些技巧可以阻止这种情况发生?

编辑:这是基本的CSS(减去许多基本样式,例如过渡和其他内容,我试图将其删除以查看它们是否是罪魁祸首)。

#wrapper {
    width: 90%;
    max-width: 1100px;
    min-width: 800px;
    margin: 50px auto;
}

#columns {
    -webkit-column-count: 4;
    -webkit-column-gap: 10px;
    -webkit-column-fill: auto;
    -moz-column-count: 4;
    -moz-column-gap: 10px;
    -moz-column-fill: auto;
    column-count: 4;
    column-gap: 15px;
    column-fill: auto;
}

.pin {
    display: inline-block;
    background: #FEFEFE;
    border: 2px solid #FAFAFA;
    box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
    margin: 0 2px 15px;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
    column-break-inside: avoid;
    padding: 15px;
    padding-bottom: 5px;
}
Run Code Online (Sandbox Code Playgroud)

是一个显示问题的 JSFiddle。有四列,但在 Chrome …

css column-count css-multicolumn-layout

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

在C#if语句中使用ASP Container.ItemIndex

我已经抛出了一个关于ASP和C#的问题,没有任何经验,在我有限制访问的服务器和我无法看到正确的错误日志的服务器上.所以准备好一个可能令人困惑的问题:)

我们在HTML模板中有一个循环(ASP转发器),模板中的HTML的一部分应该只包含在循环的第一次迭代中.不幸的是,我不能只隐藏其他迭代的html,我需要删除它.

所以基本上想要这样做:

<% if (Container.ItemIndex == 0) { %>
    Lots of HTML here
<% } %>
Run Code Online (Sandbox Code Playgroud)

问题是这会产生错误(我看不到日志,所以我不知道为什么......).我知道if语句本身是有效的(设置0 == 0而不是作为一个例子),我可以正常得到索引,只是不在这里.

所以问题是,一个人怎么做这样的事情?我可以在C#if语句中访问索引,还是可以使用转发器内置的内容?

c# asp.net repeater

4
推荐指数
1
解决办法
5026
查看次数

使用Python Imaging Library模糊包含文本的图像

我有一个包含一些文本的图像(在标准文档字体大小),我试图模糊图像,使文本不再可读.

然而,PIL中的默认ImageFilter.BLUR太强了,所以图像只是空白了,除了这里和那里的单个像素.

在PIL的某个地方有一个较弱的BLUR吗?或者有更好的过滤器/更好的方法吗?

python python-imaging-library

3
推荐指数
1
解决办法
1084
查看次数