小编Kev*_*man的帖子

在观察AngularJS中的模型更改时,如何忽略初始加载?

我有一个网页,作为单个实体的编辑器,它作为$ scope.fieldcontainer属性中的深层图形.在我从REST API(通过$ resource)获得响应后,我将一个监视添加到'fieldcontainer'.我正在使用这个手表来检测页面/实体是否"脏".现在我正在使保存按钮反弹,但实际上我想让保存按钮不可见,直到用户弄脏模型.

我得到的是手表的单个触发器,我认为这是因为.fieldcontainer = ...分配在我创建手表后立即发生.我想只是使用"dirtyCount"属性吸收最初的误报,但感觉非常hacky ......而且我认为必须有一种"Angular惯用"方式来解决这个问题 - 我不是唯一一个用手表检测脏模型.

这是我设置手表的代码:

 $scope.fieldcontainer = Message.get({id: $scope.entityId },
            function(message,headers) {
                $scope.$watch('fieldcontainer',
                    function() {
                        console.log("model is dirty.");
                        if ($scope.visibility.saveButton) {
                            $('#saveMessageButtonRow').effect("bounce", { times:5, direction: 'right' }, 300);
                        }
                    }, true);
            });
Run Code Online (Sandbox Code Playgroud)

我只是一直认为,除了用"if(dirtyCount> 0)"保护我的"UI脏"代码之外,必须有一个更清洁的方法...

angularjs angularjs-scope

181
推荐指数
3
解决办法
6万
查看次数

后退按钮(Chrome)在Play Framework中获取Json而不是HTML

伙计们,我有一个Web应用程序,我已经为相同资源的JSON和HTML表示重用了相同的路由,现在我们称之为/ foo/details.此页面链接,我们称之为/ bar/details.(所以,看/ bar/details你看到链接到 - >/foo/details).

当我从第一页到第二页时,一切正常.当我点击Chrome中的后退按钮时,原始页面呈现为JSON而不是HTML.如果我在浏览器中点击刷新,我会获得HTML表示而不是JSON.

这是我用来检测JSON与HTML的代码:

res.result.map { group =>
  render {
    case Accepts.Html() => Ok(views.html.groups.details(group))
    case Accepts.Json() => Ok(Json.toJson(group))
  }
}.getOrElse(NotFound)
Run Code Online (Sandbox Code Playgroud)

这是此模式的标准实现,它可以在任何地方使用,除非在某些情况下我在Chrome中使用后退按钮.

是否有一些我没有清除的值,或者我的页面正在使用Ajax做什么令人困惑Play让它在Json中呈现,或者Chrome可能正在缓存页面但缓存错误的接受标题?

我可以通过使用两种不同的路线来解决这个问题,一种用于Json,另一种用于Html,但我不喜欢,因为我觉得我放弃了.

任何人都只有在后退按钮中导致此行为的原因有任何想法吗?

json google-chrome playframework-2.0

11
推荐指数
2
解决办法
1965
查看次数

WF4/WCF中的RESTful工作流服务端点

伙计们,我正在建立一个非常标准的工作流程,我希望通过WCF端点公开 - 我正在使用"WCF服务应用程序"项目模板,我有一个.xamlx服务.这是一个非常简单的文档交换工作流服务 - 我希望消费者向我发布一个XML blob作为HTTP帖子的主体(包含身份验证令牌的HTTP头).作为回应,这些消费者将获得包含回复的大量XML.我在这里使用REST/POX的2个目标是基于文档/消息的交互性质我想让非.NET环境(特别是像Silverlight和iPhone这样的有限环境)的客户端开发变得容易.

我真的没有看到如何使用开箱即用功能实现这一点(除非我遗漏了一些东西).有没有人知道如何为WF4服务托管工作流创建RESTful(甚至REST-ish,我不挑剔)端点?任何领先于正确方向的信息都会很棒.

wcf workflow workflow-foundation workflow-foundation-4

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

惯用斯卡拉列表理解 - 匹配的第一个项目

伙计们,我最近在Scala中编写了一些代码来自学语言,在最近的一些实验中,我使用NLP库从用户的输入中生成一组词性标记的单词.

我想写一个函数,它给出了句子中的第一个动词.如果没有动词,那么我想假设该组中的第一个单词是动词(例如,如果玩家只输入"谁"或"正常运行时间",那些被我的游戏视为动词).

以下是一个代码块,只有母亲才会喜欢这么难看,而且命令式编程很糟糕,我想把它重构成更像是惯用的Scala,理想情况是它里面没有一个"if"语句.

def firstVerb = {
    if (words.size == 1)
        words.head.value
    else {
        val outWords = words.filter( word => word.pos == Verb)
        if (outWords == Set.empty) 
            words.head.value
        else
            outWords.head.value 
    }
}
Run Code Online (Sandbox Code Playgroud)

"words"变量的类型为ListBuffer [EnrichedWord],其中EnrichedWord是我的类,它包含一个词性(pos,包含案例对象,如Verb,Noun等)和原始词(value).

Scala geniuses在重构这个对接丑陋的代码时可以提供的任何指导都很棒.

java scala list-comprehension idiomatic

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

ADFS v2.0错误:MSIS7042:同一客户端浏览器会话在最后'1'秒内发出'6'请求

伙计们,我有一个ASP.NET MVC应用程序,我试图使用ADFS v2.0(日内瓦)的Release Candidate版本来保护它.我已将应用程序配置为依赖方信任,并且我已使用Fedutil.exe修改应用程序的Web.config,以便它具有有关Geneva服务器的信息并使用Geneva服务器作为其声明源.

然而,当我尝试点击MVC应用程序时,它会重定向到日内瓦,然后(在警告我有关自签名证书之后)再次将我重新引导到MVC应用程序.在接受两个自签名证书警告后,两个服务器在无限重定向循环中互相打乒乓,直到最后日内瓦发出以下消息:

同一个客户端浏览器会话在最后'1'秒内发出'6'请求.可能存在可能的错误配置.请联系您的管理员了解详情

除了包含上述消息的事件之外,MVC端或日内瓦的事件日志中没有错误.如果有人能给我一些关于如何尝试和调试,诊断并希望解决这个问题的信息,我将永远感激不尽.

同样,日内瓦盒子是ADFS v2.0候选版本,ASP.NET MVC站点是使用最新的(09年末)版本的Windows Identity Foundation SDK构建的,其中使用来自WIF SDK的FedUtil.exe修改了Web.config .


所以你们都会得到这个...我从Firefox尝试了同样的应用程序...... IT工作.我收到提示输入我的域凭据,ADFS v2服务器重新指示我ONCE然后我最终在我的应用程序的主页上,完成我的帐户名称和个性化问候语.所以现在真正的问题是:为什么IE8会陷入无限重定向循环并且Firefox不是?经过进一步测试,我已经能够开箱即用,无需修改ADFS v2(RC)或BOTH Safari和Firefox上的WIF(RTW)中的任何默认管道内容.IE8是唯一一个在处理此身份验证方案时遇到任何问题的浏览器.我已经尝试了一切,包括安装和信任自签名证书,将站点添加到我的本地Intranet区域,并将安全性降低到低,甚至设置第一个和第三方cookie始终允许.

geneva-framework geneva-server adfs2.0

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

通过Akka IO和套接字的协议缓冲消息

我看到了这篇博文,我发现它很棒,很有启发性,展示了如何对发送到Akka IO套接字服务器的字符串消息进行固定长度的构建.我一直在使用我在这里找到的一个名为ScalaBuff的开源库,它在协议缓冲区对象之上创建了一个很好的薄层.

我遇到的麻烦是调整博客作者(找不到直接联系他的链接)代码来获取长度(4字节序列)然后是protobuf字节数组.我可以担心以后找出哪条消息在线上,现在我只想让代码使用一条示例消息.

我的问题是我无法将Akka IO代码从akka ByteStrings转换为能够从protobuf消息发送和拉取原始字节.这是我对使用Akka IO的套接字服务器不熟悉的一种表现.我可以从我的protobuf对象(Zombie Sighting)的字节表示中获取,但是我无法从博客中获取样本来处理字节数组而不是字符串.

如果有人有一些建议,一些示例代码,或者如何从A点(上面提到的博客文章)到B点(一个Akka IO套接字客户端,将一个protobuf消息发送到Akka IO套接字服务器)的一些输入...我我认为我有客户工作..也许),这将是非常棒的.

sockets scala protocol-buffers akka

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

BizTalk没有看到我的任何GAC组件

伙计们,我意识到这可能看起来像通常的"你没有重新启动你的主机实例"问题..但还有更多的东西.我有一个BizTalk应用程序,包括几个架构程序集,管道程序集,一些地图等.我使用Visual Studio 2010将其部署到BTS2010.我的程序集都出现在GAC中 - 我的模式,我的管道等.模式出现在BT应用程序中,管道中也是如此.我的所有地图都出现在BT应用程序中.

当我通过使用我的自定义管道发送消息时,我收到"失败的管道"消息抱怨强名称和GAC.当我不使用管道时,我只是尝试使用消息直接进入消息框,它抱怨它无法加载我的架构的doc规范并再次抱怨GAC.

我已经验证了几百次装配实际上在GAC中,并且我已经重新启动(包括完全停止)主机实例几十次.

是否有任何其他奇怪的事情会使BizTalk无法从GAC加载我的东西,即使它看起来好像它在那里我已经重新启动主机实例?

schema biztalk gac pipeline

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

使用 Cypher 在 Neo4j 中查询递归关系链

我有一个图形数据库,它正在对消息的元数据和可以包含在这些消息中的字段进行建模。其中一些字段可以是“组”,它们是其他字段的组。我试图问 Neo 的是“哪些消息正在使用这个组?”。以下是可用于从消息获取到组的路径类型列表:

message-[:INLINE]->group  (the fields of a group are used inline on a message)
message-[:FIELDREF]->(fref)-[:FIELD]->(field)-[:DATATYPE]->group (the group is used as a data type by a field on the message)
Run Code Online (Sandbox Code Playgroud)

第二个链是递归的。换句话说,-[:FIELDREF]->(fref)-[:FIELD]->(field)-[:DATATYPE]-(group) 段可以一遍又一遍地发生,然后最终到达我感兴趣的组在。

所以,我想知道的是,我如何在路径中的每个单独元素上要求重复的关系链,而不仅仅是多个(例如,关系名称后面的 *)?

回顾一下,您可以通过遍历 [:INLINE] 关系从消息进入组,然后可以遵循 n 个“fieldref-field-datatype-group”链。或者您可以从通过遍历 n 个“fieldref-field-datatype-group”链来获取消息。

START group=node({sourceGroupId})
... ? ? ? ...
Run Code Online (Sandbox Code Playgroud)

所以我想要像 [?:INLINE]-> 0..n of (fieldref-field-datatype-group) 链。

有什么想法吗?

neo4j relationships cypher

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

错误:指令中没有控制器

伙计们,我是一个AngularJS新手,我正在尝试使用Angular创建绑定到模型层次结构的基本HTML层次结构.我的顶级模块如下所示:

angular.module('fooApp',['ngResource','myList'])在我的页面的根div处声明为ng-app ="fooApp".

然后我在页面中看到这样的HTML:

<my-item-list/>
Run Code Online (Sandbox Code Playgroud)

我有第二个模块,如下所示:

var myList = angular.module('myList', []);
myList.directive('myItemList', function factory() {
    var directiveDefinitionObject = {
        priority: 0,
        templateUrl: '/assets/partials/my-item-list.html',
        replace: false,
        transclude: false,
        restrict: 'E',
        scope: false,
        controller: function($scope, $element, $attrs, $transclude) {
            // No Op
            $scope.foo = 'bar';
        },
        compile: function compile(tElement, tAttrs, transclude) {
            return {
                pre: function preLink(scope, iElement, iAttrs, controller) {
                    // No Op
                },
                post: function postLink(scope, iElement, iAttrs, controller) {
                    // No OP
                }
            }
        },
        link: function postLink(scope, iElement, …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-ng-repeat

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

调用AngularJS $ save后没有得到更新的值

伙计们,我使用AngularJS和angular-resource来执行一个非常简单的REST API调用.这是我列出(并创建)消息的页面的JavaScript代码:

(function() {
'use strict';
var messagesApp = angular.module('messagesApp', ['ngResource']);

messagesApp.factory('Message', function($resource) {
    return $resource('/api/messages/:id', {id: '@id'}, {
        query: {method:'GET', isArray:true} });
});

messagesApp.controller('MessagesCtrl',
  function($scope, Message) {
    $scope.messages = Message.query();

    $scope.addMessage = function() {
        $.Dialog({
            'title': 'Add new Message',
            'content': '<p>Enter the <strong>unique</strong> name of the new message.</p><input type="text" id="newMessageName"/><p>Enter the <strong>unique</strong> ID for this message.</p><input type="text" id="newID"/>',
            'draggable': false,
            'overlay': true,
            'closeButton': true,
            'buttonsAlign': 'right',
            'buttons': {
                'save': {
                    'action' : function() {
                        var newMessage = new Message(); …
Run Code Online (Sandbox Code Playgroud)

javascript rest angularjs angular-resource

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