小编JLR*_*she的帖子

XPath选择Element by属性值

我有以下XML.

<?xml version="1.0" encoding="UTF-8"?>
<Employees>
    <Employee id="3">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>
    <Employee id="4">
        <age>25</age>
        <name>Meghna</name>
        <gender>Female</gender>
        <role>Manager</role>
    </Employee>
</Employees>
Run Code Online (Sandbox Code Playgroud)

我想选择id ="4"的Employee元素.

我正在使用XPath表达式下面没有返回任何东西.

//Employee/[@id='4']/text()
Run Code Online (Sandbox Code Playgroud)

我在http://chris.photobooks.com/xml/default.htm检查了它,它说无效的xpath,不知道问题出在哪里.

xml xpath

182
推荐指数
3
解决办法
26万
查看次数

承诺待定

我的代码:

let AuthUser = data => {
  return google.login(data.username, data.password).then(token => { return token } )
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行这样的东西时:

let userToken = AuthUser(data)
console.log(userToken)
Run Code Online (Sandbox Code Playgroud)

我越来越:

Promise { <pending> }
Run Code Online (Sandbox Code Playgroud)

但为什么?

我的主要目标是将令牌从中google.login(data.username, data.password)返回一个promise,转换为变量.然后才会执行某些操作.

javascript node.js promise

89
推荐指数
4
解决办法
15万
查看次数

删除所有换行符并在特定文本后添加它们

我有文本文件,我必须删除所有换行符,然后在每个文本后添加新换行符</row>.我怎么能用替换工具呢?

notepad++

61
推荐指数
4
解决办法
16万
查看次数

jQuery将CSRF令牌添加到所有$ .post()请求的数据中

我正在开发一个Laravel 5应用程序,该应用程序默认为所有POST请求启用CSRF保护.我喜欢这个增加的安全性所以我正在尝试使用它.

在发出简单$.post()请求时,我收到'Illuminate\Session\TokenMismatchException'错误,因为_tokenPOST数据中缺少所需的表单输入.以下是有问题的$ .post请求的示例:

var userID = $("#userID").val();
$.post('/admin/users/delete-user', {id:userID}, function() {
// User deleted
});
Run Code Online (Sandbox Code Playgroud)

我将CSRF令牌存储为标题中的元字段,可以使用以下方法轻松访问它:

var csrf_token = $('meta[name="csrf-token"]').attr('content');
Run Code Online (Sandbox Code Playgroud)

是否可以将此附加到所有传出$.post()请求的json数据?我尝试使用标题,但Laravel似乎没有认出它们 -

var csrf_token = $('meta[name="csrf-token"]').attr('content');
alert(csrf_token);
$.ajaxPrefilter(function(options, originalOptions, jqXHR){
    if (options['type'].toLowerCase() === "post") {
        jqXHR.setRequestHeader('X-CSRFToken', csrf_token);
    }
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery jquery-post laravel laravel-5

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

为什么string.StartsWith("\ u2D2D")总是返回true?

我正在摆弄C#中的解析,发现对于我尝试过的每一个字符串,string.StartsWith("\u2D2D")都会返回true.这是为什么?

它似乎适用于每个char.用.Net 4.5尝试了这个代码,Debugger没有破解.

for (char i = char.MinValue; i < char.MaxValue; i++)
{
    if(!i.ToString().StartsWith("\u2d2d"))
    {
        Debugger.Break();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string unicode startswith

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

ng-repeat与自定义指令结合使用

我在使用ng-repeat指令和我自己的自定义指令时遇到了问题.

HTML:

<div ng-app="myApp">
  <x-template-field x-ng-repeat="field in ['title', 'body']" />
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

angular.module('myApp', [])
    .directive('templateField', function () {
        return {
            restrict: 'E',
            compile: function(element, attrs, transcludeFn) {
                element.replaceWith('<input type="text" />');
            }
        };
    });
Run Code Online (Sandbox Code Playgroud)

jSFiddle

这里的问题是什么都没有被替换.我想要完成的是2x输入字段的输出,在DOM中完全替换'x-template-field'标签.我怀疑是因为ng-repeat正在同时修改DOM,所以这不起作用.

根据这个 Stack Overflow问题,接受的答案似乎表明这在早期版本的AngularJS(?)中实际上有效.

element.html('...')不会工作吗?

虽然element.html('...')实际上将生成的HTML注入到目标元素中,但我不希望HTML作为模板标记的子元素,而是在DOM中完全替换它.

为什么我不用另一个带有ng-repeat指令的标签包装我的模板标签?

基本上,出于与上述相同的原因,我不希望生成的HTML作为重复标记的子元素.虽然它可能在我的应用程序中得体,但我仍然觉得我已经调整了我的标记以适应Angular,而不是相反.

为什么我不使用'模板'属性?

我没有找到任何方法来改变从'template'/'templateUrl'属性中检索到的HTML.我想要注入的HTML不是静态的,它是从外部数据动态生成的.

我的标记太挑剔了吗?

大概.:-)

任何帮助表示赞赏.

angularjs angularjs-ng-repeat

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

将promise polyfill添加到ES6

我有一个用ES6编写的React项目.它是使用Babel编译的,效果很好.除了一个承诺(很多!)只在IE中起作用,我已经知道 - 不支持承诺.于是我马上想到添加填充工具提供承诺的IE浏览器,但我很喜欢"抱起来,你已经写ES6,是不是编译成ES5反正?" 谁会比SO更清楚?
那么在我的项目中添加诸如es6-promise之类的polyfill是否有任何意义?如果有,我应该如何在语法上使用它?现在我只有导入但我应该以某种方式实现它?

import Promise from 'es6-promise';
Run Code Online (Sandbox Code Playgroud)

这也是导致IE出现问题的承诺,也许我有一个语法错误,我没有注意到自己!:)

new SingleObjectResource(DJ_CONST.API.setLanguage)
    .put(null, {language_code: theLanguage})
    .then(
        function() {
            window.location.reload();
        }
    );
Run Code Online (Sandbox Code Playgroud)

javascript promise ecmascript-6 reactjs

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

声明xsl变量并为其赋值

我正在开发一个使用apache cocoon将XML转换为PDF的应用程序,我正在重新设计处理输入XML的XSL.

目前在XSL中,我们有这样的代码

<xsl:variable name="variable1">
   <xsl:choose>
     <xsl:when test="$testVariable ='1'">
        <xsl:value-of select="'A'"/>
     </xsl:when>
     <xsl:when test="$testVariable ='1'">
        <xsl:value-of select="'B'"/>
     </xsl:when>
   </xsl:choose>
</xsl:variable>

<xsl:variable name="variable2">
   <xsl:choose>
     <xsl:when test="$testVariable ='1'">
        <xsl:value-of select="'X'"/>
     </xsl:when>
     <xsl:when test="$testVariable ='1'">
        <xsl:value-of select="'Y'"/>
     </xsl:when>
   </xsl:choose>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)

如果我改成它会有用吗?

<xsl:variable name="variable1"/>
<xsl:variable name="variable2"/>
<xsl:choose>
   <xsl:when test="$testVariable ='1'">
         <xsl:variable name="variable1" select="'A'">        
         <xsl:variable name="variable2" select="'X'">
   </xsl:when> 
   <xsl:when test="$testVariable ='2'">
         <xsl:variable name="variable1" select="'B'">        
         <xsl:variable name="variable2" select="'Y'">
   </xsl:when> 
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)

xml xslt xpath apache-cocoon

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

请求 blob 图像并使用 fetch API 转换为 base64

我有一些图像将显示在 React 应用程序中。我向服务器执行 GET 请求,该请求以 BLOB 格式返回图像。然后我将这些图像转换为 base64。最后,我在图像标签的 src 属性中设置这些 base64 字符串。

最近我开始使用 Fetch API。我想知道是否有办法在“一次”中进行转换。

下面是一个示例来解释我目前的想法和/或 Fetch API 是否可以实现这一点。我还没有在网上找到任何东西。

  let reader = new window.FileReader();
  fetch('http://localhost:3000/whatever')
  .then(response => response.blob())
  .then(myBlob => reader.readAsDataURL(myBlob))
  .then(myBase64 => {
    imagesString = myBase64
  }).catch(error => {
    //Lalala
  })
Run Code Online (Sandbox Code Playgroud)

javascript base64 blob fetch fetch-api

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

为什么等待后的代码不会马上运行?它不应该是非阻塞的吗?

嗨,大家好我很难理解异步和等待在幕后工作.我知道我们有通过使用"then"函数创建非阻塞代码的promise,我们可以在promise解决后放置我们需要做的所有工作.我们希望做的工作与我们希望并行,我们只需将它写在我们的函数之外.因此代码变得非阻塞.但是我不明白如何async await制作非阻塞代码.

async function myAsyncFunction() {
  try {
    let data = await myAPICall('https://jsonplaceholder.typicode.com/posts/1');
    // It will not run this line until it resolves await.
    let result = 2 + 2;
    return data;
  }catch (ex){
    return ex;
  }
}
Run Code Online (Sandbox Code Playgroud)

请参阅上面的代码.在API调用解决之前,我无法继续前进.如果它使我的代码阻止代码,那么它比promises更好吗?或者是有什么我错过了约asyncawait?我在哪里放置不依赖于等待调用的代码?所以它可以继续工作而无需等待执行?

我正在添加一个Promise代码,我希望在async await示例中进行复制.

function myPromiseAPI() {
  myAPICall('https://jsonplaceholder.typicode.com/posts/1')
    .then(function (data) {
        // data
    });
   // runs parallel
  let result = 2 + 2;
}
Run Code Online (Sandbox Code Playgroud)

javascript async-await es6-promise ecmascript-2017

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