为什么当我使用jQuery绑定事件对象时,我回来的事件对象与我使用addEventListener返回的事件对象不同?
这个jQuery绑定产生的事件对象没有targetTouches数组(除其他外),但addEventListener中的事件没有.是我还是不对的?
$(document).ready (function () {
$("#test").bind("touchmove", function (event) {
console.log(event.targetTouches[0].pageX);
// targetTouches is undefined
});
});
Run Code Online (Sandbox Code Playgroud)
与
$(document).ready (function () {
var foo = document.querySelectorAll('#test')
foo[0].addEventListener('touchmove', function (event) {
console.log(event.targetTouches[0].pageX);
// returns the correct values
}, false);
});
Run Code Online (Sandbox Code Playgroud) 我试图在我的网络应用程序的safari中禁用电话号码检测,但它仍然显示由数字组成的7个字符串作为电话号码.我使用苹果提供的元标记,但没有快乐.
<meta name="format-detection" content="telephone=no">
Run Code Online (Sandbox Code Playgroud)
其他人遇到这个问题并解决它?
谢谢.
更新:看起来它没有检测到safari中的电话号码,而是当我将页面保存为图标并从主屏幕运行时.
我在firebase中有一个记录列表,其中包含一个包含零个或多个组的组属性.我也有firebase auth对象,它也有零个或多个组.我想为我的记录设置.read firebase规则,该规则将检查两者是否至少有两个列表中存在的组.
换句话说,我有一个用户,它有一组已分配给它的组.我有一些记录,其中还有一些组列表,用于指定用户访问它们必须具有的组.如果登录用户尝试访问记录,我想确保用户至少有一个记录所需的组.
在客户端我会做类似的事情 _.intersect(userGroups, recordGroups).length > 0
我不确定如何在firebase规则表达式中执行此操作.如果它像这样工作会很酷.
记录:
{
someData: "test"
groups: ['foo', 'bar']
}
Run Code Online (Sandbox Code Playgroud)
Firebase Auth对象:
{
userName: "Bob",
groups: ['foo', 'bar']
}
Run Code Online (Sandbox Code Playgroud)
规则数据:
{
"rules": {
"records": {
"$recordId": {
".read": "data.child('groups').intersectsWith(auth.groups)"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:
我认为如果hasChildren()使用|| 而不是&&我可以将组名放在关键位置并以这种方式检查它们的存在.就像是"data.child('groups').hasChildren(auth.groups, 'or')"
记录:
{
someData: "test"
groups: {
'foo': '',
'bar': ''
}
}
Run Code Online (Sandbox Code Playgroud)
Update2: 基于加藤的评论和链接,我意识到即使hasChildren可以做OR,它仍然无法正常工作.如果当前用户无权访问每条记录,则对单个记录的请求将起作用,但对所有记录的请求将会出错.
目前尚不清楚如何构建数据来实现这一目标.如果记录可能属于许多组,那该怎么办?这是一个非常常见的场景(基本上linux组权限是如何工作的)所以我不能成为唯一一个尝试这样做的人.任何人都有任何想法/示例如何在firebase中完成此任务?
我一直在使用url拦截方法将数据从javascript传递到目标C,方法是将数据作为url编码参数传递,并使用NSURLProtocol来拦截请求但是我现在想要发送更大量的数据,比如10,000个字符长的字符串,但是这个在GET请求中似乎不切实际.对?
有没有办法让目标c拦截从UIWebView发送的POST数据?
如果是这样,我仍然使用NSURLProtocol,如何获取POST数据?
如果没有,我可以通过其他方式将大量数据从UIWebView传递到目标c吗?
请参阅下面的更新
我有一个角度应用程序,在该控制器的页面上有一个控制器和一个指令,它们都引用相同的firebase数据(我有充分的理由将它们分开).当我对一个引用进行更改时,除非保存数据,否则其他引用不会反映更改.在不必保存数据的情况下更新所有本地firebase引用的最佳方法是什么.我想让用户在保存之前看看他/她的更改会是什么样子.
我有一个说明我遇到的问题的傻瓜.键入一个输入,其他输入都不会更新,直到您保存.我希望他们都能在用户输入时保持同步.
http://jsfiddle.net/dberringer/F7MVB/2/
function MyCtrl($scope, $firebase) {
var ref1 = $firebase(new Firebase("https://fiddler.firebaseio.com/test1"));
ref1.$on('value', function () {
$scope.foo = ref1;
});
$scope.save1 = function () {
ref1.$save();
};
var ref2 = $firebase(new Firebase("https://fiddler.firebaseio.com/test1"));
ref2.$on('value', function () {
$scope.bar = ref2;
});
$scope.save2 = function () {
ref2.$save();
};
$scope.bas = $firebase(new Firebase("https://fiddler.firebaseio.com/test1"));
$scope.saveBas = function () {
$scope.bas.$save();
};
$scope.biz = $firebase(new Firebase("https://fiddler.firebaseio.com/test1"));
$scope.saveBiz = function () {
$scope.biz.$save();
};
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!
更新: 抱歉.我应该更清楚.我发布的小提琴只是一种快速而肮脏的方式来说明问题.这里有一个更准确的情况表示,以及为什么能够在不保存的情况下传播更改会有所帮助.我试图弄清楚是否有一种开箱即用的方法将一个firebase引用上的更改传播到另一个firebase引用,而无需用户将数据保存到firebase.也许我需要触发一个方法或事件来告诉所有更新的引用以匹配a.那会很好.
正如您所看到的,我的所有模型逻辑都在myModel工厂中.我的控制器很好而且很薄.my-things指令可能存在也可能不存在于任何给定页面上,因此该指令直接访问模型而不是通过控制器的范围.我的控制器不需要为他们可能需要或可能不需要的指令注入一堆模型.在使用firebase时,走这条路线感觉非常干净自然.如果这是不可能的,人们有另一种方法来装配模型,与firebase资源交互,这会促进这个吗?再次感谢!
http://jsfiddle.net/dberringer/F7MVB/5/
angular.module('myApp',['firebase'])
.factory('myModel', function ($q, …
Run Code Online (Sandbox Code Playgroud) 我有一些逻辑我想包装到AngularJS工厂,所以我可以使用angular的依赖注入.由于逻辑是动态的,我不一定知道提前调用什么.我所拥有的是一个字符串,表示要调用的函数的名称.我知道我可以做类似于window["someFunctionName"]()
使用字符串运行函数的东西,但由于所有内容都包含在工厂中,我不知道如何引用工厂来调用它.恩. sampleFactory["someFuncitonName"]();
我发现运行该功能的唯一方法是使用eval("someFuncitonName()")
.显然,如果可以,我想避免使用eval.
这是我正在尝试做的一个例子:
'use strict';
angular.module('testApp')
.factory('testFactory', function (someData) {
// User defined code that was wrapped up in a factory
function foo() {
someData.amount = 5;
}
// End dynamic code
return {
funcRunner: function(functionName) {
testFactory[functionName]();
}
};
});
Run Code Online (Sandbox Code Playgroud)
在控制器中,用户可以运行这样的东西testFactory.funcRunner("foo");
.
有没有办法在这些方面做点什么testFactory[functionName]();
?有没有更好的方法来做到这一点?谢谢你的帮助.
更新: 由于注释中的代码是用户定义的,我无法知道,也无法控制注释中的代码是如何编写的.我不想强迫用户施加任何限制.因此,我可以期待很少.
javascript ×4
angularjs ×2
firebase ×2
angularfire ×1
events ×1
iphone ×1
jquery ×1
objective-c ×1
uiwebview ×1