我有两个控制器,并使用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
此链接(存档版本)描述了如何将脚本中的代码注入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>"
获取函数内部的代码,但是
scriptFooString
任何提示?
我想在HTML链接文本中显示"Open Lock"字符.
如果我直接执行它会正确显示<a id="myId">🔒</a>
,但我发现没有办法用jQuery .text()
函数改变它,就像在:
$("#myID").text(openLockText);
Run Code Online (Sandbox Code Playgroud)
我应该在openLockText中添加什么?
我在C中有一堆math/dsp算法.单个函数,每个文件一个函数,没有花哨的链接或包含或预处理器指令,只有c99和标准库调用(主要是memset和memmoves来处理数组复制等).翻译它们不是一个大问题,但需要时间.我想知道是否有一些C - > Javascript翻译工具,以加快工作.
请注意我不需要一个完美的翻译,无论如何我会把手放在最后的结果上.我需要的是一个简单的工具,可以帮助解决基本的"无聊"问题.
有人听说过这样的事吗?
编辑:似乎emscripten会做的伎俩.
我有一个脚本,可以从远程服务器上的git存储库中复制一些文件.对于每个复制的文件,如果它受版本控制,我想生成一行,如:
Filename: <filename>, commit: <last-commit-hash>, date: <date of last commit>
Run Code Online (Sandbox Code Playgroud)
我们的想法是将这些行存储在一个文件中,并将其复制到远程服务器上.这样我总是可以知道服务器上的哪个文件属于我的git存储库中的哪个提交.有快速的方法吗?
我对Javascript Typed Arrays有点困惑.
我有几个Float32Array,没有concat方法.我不知道提前有多少人,顺便说一下.我想将它们连接到另一个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?
我有一个角度指令,在可视化之前编译一些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:我真的很想理解,所以我不会使用自动执行此功能的伴侣文件)
假设我想使用贝塞尔路径近似SVG中的半余弦曲线.半余弦应该如下所示:
从[x0,y0](左手控制点)到[x1,y1](右手控制点)运行.
如何找到一组可接受的系数,以便对该函数进行良好的近似?
奖金问题:如何推广例如四分之一余弦的公式?
请注意,我不希望用近似一系列相互连接段的余弦,我想计算使用贝塞尔曲线的良好近似.
我在评论中尝试了解决方案,但是,使用这些系数,曲线似乎在第二点之后结束.
我正在用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)
有人知道更快的计算方法吗?
好吧,我正在寻找Java中的regexp,它删除所有短于3个字符的单词.我认为类似的东西\s\w{1,2}\s
会抓住所有1和2个字母的单词(一个空格,一到两个单词字符和另一个空格),但它只是不起作用.我哪里错了?