我从Knockout转到Angular,我有一些问题.我假设我必须做一些非角度的方式.
http://jsfiddle.net/LostInDaJungle/BxELP/
I linked to jsfiddle so I didn't have to include my code here
Stack Overflow will not let me post my question without a code block.
Run Code Online (Sandbox Code Playgroud)
这是一个非常基本的小提琴,概述了我的两个主要问题......
问题1:val1和val2初始化为3和4,并且正确加起来为7.但是,如果更改文本框中的任何一个值,则新值将被视为字符串,并且我将获得连接而不是添加.将val1更改为4,当它应该是8时你得到44.这种行为的最佳方法是什么?
问题2:计算字段.我可以使用像{{val1 + val2}}这样的大括号来获取计算字段,并在基础模型更改时自动更新计算字段,但这是完全不可接受的.在我的完全成熟的应用程序中,我们生成了一个"成本",在整个过程中使用了几次,每次都要付出成本计算费用.更不用说当这个计算发生变化时,我现在有一个不值得羡慕的任务,就是找到15个不同的地方,使用成本计算并全部更新.
另外,如果我尝试使用大括号在输入上放置ng-model ="cost",那么大括号不起作用.所以没有什么可以作为绑定成本的方式跳出来.
http://jsfiddle.net/LostInDaJungle/QNVwe/
这个例子更像我想要的结构.但是,与ko.observable不同,计算字段在生成它们的值发生更改时不会更新.每个人都强加给我的样板解决方案是编写一堆ng-change处理程序......但这太糟糕了.如果宽度变化会改变成本并改变投资回报计算等等......它很快就会变得混乱.
就逻辑与表示分离而言,这两种方法都失败了.方法一将我的业务逻辑嵌入到我的HTML中.方法二在我的代码中放入了一大堆ng-change处理程序,这与用纯HTML格式编写一大堆onChange处理程序没有多大区别.如果我需要做一堆ng-change处理程序,我会尽快在Javascript中执行onChange处理程序,因为我至少可以在我的表示层之外声明它们.
这是同一个淘汰赛版本:
http://jsfiddle.net/LostInDaJungle/eka4S/2/
这更像我期望的......除了数据绑定我的输入,所有程序逻辑都很好地包含在视图模型中.此外,由于我的可计算机是一个Javascript函数,所以我不必理会如何确保我的两个值是数字.
所以....
计算变量:有没有办法观察基础变量并自动更新计算量?无需将我的程序逻辑埋在我的HTML中?
有没有一种好方法可以防止我的数字变成字符串?
谢谢您的帮助.
仅供参考,也发布到Google网上论坛:https://groups.google.com/forum/#!topic / angular/ 0dfnDTaj8tw
我正在编写一些代码以随机分配演示文稿列表。相同的演示文稿无法连续播放。
该$d数组将是演示文稿ID的列表以及演示文稿应在循环中播放的次数。
下面的代码可以正常工作,但是结果并不是真正随机的。当我一次又一次地看到相同的模式时,我正在调试。查看以下输出:
ighbajafpbailgjacbiaeldiqjaphafgdjcbapsaebjfdkcknijhbdgecaimabodalkfbgbhacbhnrjeofbdjbfhegmbpdkialmbocnliaebfaimcabchgoecbcdimgepnfjgfbfbohdahdkjgneaebha
ighbajafpbailgjacbiaeldiqjaphafgdjcbapsaebjfdkcknijhbdgecaimabodalkfbgbhacbhnrjeofbdjbfhegmbpdkialmbocnliaebfaimcabchgoecbcdimgepnfjgfbfbohdahdkjgneaebha
Run Code Online (Sandbox Code Playgroud)
这两个分开了4次。它们是相同的。4之后运行,相同的字符串。多运行4次,相同的字符串。实际上,在运行此命令时,我似乎依次得到了相同的4个字符串。
我的代码在下面,有人可以指出我可能已经嘲笑的内容吗?如果我什么都没做,为什么“ rand”不是随机的?我该如何解决?
$d = array(
array('a', '20'), array('b', '20'), array('c', '10'), array('d', '10'), array('e', '10'), array('f', '10'), array('g', '10'), array('h', '10'), array('i', '10'), array('j', '10'), array('k', '5'), array('l', '5'), array('m', '5'), array('n', '5'), array('o', '5'), array('p', '5'), array('q', '1'), array('r', '1'), array('s', '1'));
$out = randomizeArray($d);
//var_dump($out);
function randomizeArray ($data) {
// Step 1: Make an array of the id's with repeats for count.
$rarray = array();
foreach ($data as $i => …Run Code Online (Sandbox Code Playgroud) 我的猜测是,这是我做错了......
使用toJSON和fromJSON方法保存和加载Fabric图形,似乎缩放的对象不会保留其缩放.
仅供参考,它创建的PNG文件看起来正确.
所以,这是保存时图像的样子:

然后,当我重新加载它:

码:
function save () {
// Need to clear selection and remove overlay before saving.
canvas.deactivateAll();
if (!mask) {canvas.setOverlayImage('', canvas.renderAll.bind(canvas));}
// If they're zoomed in, reset the image
resetZoom();
var name = prompt("Please enter a filename", "NewPresentation");
var url = 'http://localhost/fabric/img/'+name+'.png';
var stat = checkUrl(url);
//console.log("Stat: "+stat);
if (stat) {
if (!confirm(url+" already exists. Do you want to overwrite the existing file?")) return false;
}
$.ajax({
type: 'POST',
url: 'save.php',
data: {
task: 'save',
img: …Run Code Online (Sandbox Code Playgroud)