小编jan*_*nce的帖子

AngularJS:当从模型数组拼接模型元素时,不会更新ng-repeat列表

我有两个控制器,并使用app.factory函数在它们之间共享数据.

第一个控制器在单击链接时在模型数组(pluginsDisplayed)中添加一个小部件.小部件被推入阵列,此更改将反映到视图中(使用ng-repeat显示数组内容):

<div ng-repeat="pluginD in pluginsDisplayed">
    <div k2plugin pluginname="{{pluginD.name}}" pluginid="{{pluginD.id}}"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

该小部件基于三个指令构建,k2plugin,remove和resize.remove指令将span添加到k2plugin指令的模板中.单击所述span时,将删除共享数组中的右元素Array.splice().共享阵列已正确更新,但更改反映在视图中.但是,添加另一个元素后,在删除后,视图将正确刷新,并且不会显示先前删除的元素.

我错了什么?你能解释一下为什么这不起作用吗?有没有更好的方法来做我想用AngularJS做的事情?

这是我的index.html:

<!doctype html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js">
        </script>
        <script src="main.js"></script>
    </head>
    <body>
        <div ng-app="livePlugins">
            <div ng-controller="pluginlistctrl">
                <span>Add one of {{pluginList.length}} plugins</span>
                <li ng-repeat="plugin in pluginList">
                    <span><a href="" ng-click="add()">{{plugin.name}}</a></span>
                </li>
            </div>
            <div ng-controller="k2ctrl">
                <div ng-repeat="pluginD in pluginsDisplayed">
                    <div k2plugin pluginname="{{pluginD.name}}" pluginid="{{pluginD.id}}"></div>
                </div>
            </div>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的main.js:

var app = angular.module ("livePlugins",[]);

app.factory('Data', function () {
    return {pluginsDisplayed: []};
});

app.controller ("pluginlistctrl", function ($scope, …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

101
推荐指数
3
解决办法
16万
查看次数

将JavaScript函数注入iframe

此链接(存档版本)描述了如何将脚本中的代码注入iframe:

function injectJS() {
  var iFrameHead = window.frames["myiframe"].document.getElementsByTagName("head")[0];
  var myscript = document.createElement('script');
  myscript.type = 'text/javascript';
  myscript.src = 'myscript.js'; // replace this with your SCRIPT
  iFrameHead.appendChild(myscript);
}
Run Code Online (Sandbox Code Playgroud)

没关系,但如果我想将一个函数对象插入iframe 并在iframe上下文中执行它会怎样?比方说我有:

function foo () {
    console.log ("Look at me, executed inside an iframe!", window);
}
Run Code Online (Sandbox Code Playgroud)

我想在iframe中插入foo的代码?(函数foo可能是动态加载的东西,我不能只用引号括起来)

我天真地尝试过:

var scriptFooString = "<script>" + foo.toString() + "</script>"

获取函数内部的代码,但是

  • 我不知道如何将它插入iframe HEAD(也许用jquery?)
  • 我不知道这是不是正确的方法
  • 我不知道当函数比这更复杂时会发生什么
  • 我不知道双引号和单引号会发生什么 scriptFooString

任何提示?

javascript iframe dom head

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

jquery .text()和unicode

我想在HTML链接文本中显示"Open Lock"字符.

如果我直接执行它会正确显示<a id="myId">&#x1f512;</a>,但我发现没有办法用jQuery .text()函数改变它,就像在:

 $("#myID").text(openLockText);
Run Code Online (Sandbox Code Playgroud)

我应该在openLockText中添加什么?

html javascript unicode jquery

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

将C翻译为JavaScript

我在C中有一堆math/dsp算法.单个函数,每个文件一个函数,没有花哨的链接或包含或预处理器指令,只有c99和标准库调用(主要是memset和memmoves来处理数组复制等).翻译它们不是一个大问题,但需要时间.我想知道是否有一些C - > Javascript翻译工具,以加快工作.

请注意我不需要一个完美的翻译,无论如何我会把手放在最后的结果上.我需要的是一个简单的工具,可以帮助解决基本的"无聊"问题.

有人听说过这样的事吗?

编辑:似乎emscripten会做的伎俩.

javascript c code-translation

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

如何打印git存储库中每个文件的最后提交信息

我有一个脚本,可以从远程服务器上的git存储库中复制一些文件.对于每个复制的文件,如果它受版本控制,我想生成一行,如:

Filename: <filename>, commit: <last-commit-hash>, date: <date of last commit>
Run Code Online (Sandbox Code Playgroud)

我们的想法是将这些行存储在一个文件中,并将其复制到远程服务器上.这样我总是可以知道服务器上的哪个文件属于我的git存储库中的哪个提交.有快速的方法吗?

git bash

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

Gecko 2中的Typed Arrays:Float32Array连接和扩展

我对Javascript Typed Arrays有点困惑.

我有几个Float32Array,没有concat方法.我不知道提前有多少人,顺便说一下.我想将它们连接到另一个Float32Array中,但是:

  • 正如我之前所说,没有连接方法
  • 如果我尝试写过数组长度,数组不会扩展(也就是说这不起作用 - 请注意event.frameBuffer和缓冲区都是Float32Array,我不知道缓冲区的最终长度是多少):

var length_now = buffer.length;
for (var i = 0; i < event.frameBuffer.length; i += 1) {
      buffer [length_now + i] = event.frameBuffer[i];
}
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决方案是将Float32Array复制到一个常规数组中,这绝对不是我想要的.你会怎么做,stackoverflowers?

javascript arrays gecko typed-arrays

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

angularjs:将焦点设置在指令内的先前隐藏的输入元素上

这是一个简化的插图来说明问题

我有一个角度指令,在可视化之前编译一些HTML代码.在html中,有一个hiden输入只有在以下scope.isEditShown情况下才可见true:

<input ng-show='isEditShown' type='text' value='{{content.name}}' class='title_edit'/>

scope.titleChange调用函数时会显示输入.这个函数(绑定到ng-dblclick指令)只是设置为true scope.isEditShown并尝试focus()在input元素上调用jQuery的方法(以前存储在链接器函数的作用域中scope.input = $("input:text", ae);:

scope.isEditShown = true;
scope.input.focus();
Run Code Online (Sandbox Code Playgroud)

简而言之,我希望在双击某些内容时可视化先前隐藏的输入,并立即关注它.需要立即关注,因为输入在失去焦点时被隐藏(我希望用户立即能够编辑输入内容.当用户点击时,输入被隐藏).

问题是我似乎无法以编程方式将焦点放在输入元素上.经过实验,我发现当scope.isEditShown = true;执行时,输入仍然不可见(=角度js没有在DOM中显示它),并且将焦点设置scope.input.focus();为隐藏输入什么都不做.当输入元素最终显示时,它没有聚焦.

做我想要的角度方式是什么?我什么时候可以确定我的输入显示以及何时可以focus()有效地呼叫它?注意:如果我scope.$apply()在将焦点放在输入之前使用,我将获得$apply already in progress异常.如果我做了安全的申请,将不会给予补偿.看看plunkr.

(ps:我真的很想理解,所以我不会使用自动执行此功能的伴侣文件)

angularjs angularjs-directive angularjs-scope

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

如何在SVG中使用贝塞尔曲线近似半余弦曲线?

假设我想使用贝塞尔路径近似SVG中的半余弦曲线.半余弦应该如下所示:

半余弦

从[x0,y0](左手控制点)到[x1,y1](右手控制点)运行.

如何找到一组可接受的系数,以便对该函数进行良好的近似?

奖金问题:如何推广例如四分之一余弦的公式?

请注意,我希望用近似一系列相互连接段的余弦,我想计算使用贝塞尔曲线的良好近似.

我在评论中尝试了解决方案,但是,使用这些系数,曲线似乎在第二点之后结束.

graphics svg bezier trigonometry spline

11
推荐指数
3
解决办法
3112
查看次数

Javascript中的快速双曲正切近似

我正在用javascript做一些数字信号处理计算,我发现计算双曲正切(tanh)有点太贵了.这是我目前近似tanh的方式:

function tanh (arg) {
    // sinh(number)/cosh(number)
    return (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg));
}
Run Code Online (Sandbox Code Playgroud)

有人知道更快的计算方法吗?

javascript math performance approximation

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

正则表达式删除所有短于n的单词

好吧,我正在寻找Java中的regexp,它删除所有短于3个字符的单词.我认为类似的东西\s\w{1,2}\s会抓住所有1和2个字母的单词(一个空格,一到两个单词字符和另一个空格),但它只是不起作用.我哪里错了?

java regex

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