我多次听说jQuery最强大的资产是它在DOM中查询和操作元素的方式:你可以使用CSS查询来创建在常规javascript中很难做到的复杂查询.不过,据我所知,就可以实现同样的结果document.querySelector或者document.querySelectorAll,这是在Internet Explorer 8和更高版本支持.
所以问题是这样的:如果使用纯JavaScript可以实现最强大的资产,为什么'冒险'jQuery的开销?
我知道jQuery不仅仅有CSS选择器,例如跨浏览器AJAX,附带好的事件等等.但它的查询部分是jQuery强大的一部分!
有什么想法吗?
我正在尝试向Jaravel发送json的帖子请求.请求在服务器上收到,但是当我尝试访问属性时,我得到: "试图获取非对象的属性".在客户端我正在使用angularjs.
角度:
$http.post($rootScope.globals.basePath+"login/handleAjax",{"id" : obj.values[0].id,"profileUrl" : obj.values[0].publicProfileUrl}).success(function(data){
console.log("got success!",data);
});
Run Code Online (Sandbox Code Playgroud)
laravel:
class LoginController extends BaseController {
/*User logs in to linkedin and sends his id through ajax to this function*/
public function handle_ajax() {
$data = Input::all();
*//Clockwork is just a debugging extension I'm using*
Clockwork::info($data->id); **//"Trying to get property of non-object".**
}
Run Code Online (Sandbox Code Playgroud)
注意:我可以在Fiddler中看到发送的JSON是有效的,并且它到达控制器+方法(http 200).
帖子请求本身(如Fiddler所见)
Headers:
Accept: application/json, text/plain, */*
...
Text View:
{"id":"my id","profileUrl":"http://www.linkedin.com/pub/yoel-blum/51/373/76"}
Run Code Online (Sandbox Code Playgroud) 我只是在监听input元素的keyup事件,并将结果收集到一个字符串中
word=word+String.fromCharCode(key.keyCode);
Run Code Online (Sandbox Code Playgroud)
问题是这个单词是大写字母,而我希望它是区分大小写的.例如,如果我输入abcef,我累积的单词将变为'ABCEF'.
注意 - 我需要一个纯粹的JavaScript解决方案(没有库..)有什么想法吗?
我知道这在php文档中有所涉及,但我对此问题感到困惑.
来自php文档:
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null; // $instance and $reference become null
var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>
Run Code Online (Sandbox Code Playgroud)
上面的例子将输出:
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我看到$assigned 幸存的原始对象($instance)被分配给了null,所以显然$assigned不是引用而是$ instance的副本.
那么有什么区别呢
$assigned = $instance
Run Code Online (Sandbox Code Playgroud)
和
$assigned = clone $instance
Run Code Online (Sandbox Code Playgroud) 我正在创建一个列表ng-repeat,我需要给出li他们父亲或更多孩子的所有元素,某个类(在我们的ng-repeat意思是指所有索引大于中等的孩子).例如,如果列表是10个项目,我需要给第5个,第6个......第10个li孩子一个班级.所以,如果我的代码是这样的 -
[ul]
[li ng-repeat="friend in friends"]
{{friend.name}} who is {{friend.age}} years old.
[/li]
[/ul]
Run Code Online (Sandbox Code Playgroud)
从中间索引及以上索引给孩子分类的可行和好方法是什么?我的条件是我不应该改变html的结构.我可以添加directives\filters或添加控制器的东西.
我对codeigniter很新,我想知道控制器中构造函数的含义是什么.我在codeigniter教程中看到了以下代码 -
class upload extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper(form);
}
// rest of the class...
Run Code Online (Sandbox Code Playgroud)
我的问题是何时调用构造函数 - 每次控制器发出请求时是否调用它(例如,控制器类是否为它接收的每个请求实例化?)
我正在使用WinXP,Eclipse Indigo和Google web插件中的webapp.
我有一个简单的表单,从用户(例如电子邮件)获取值,将其传递给名为SignIn.java处理它的servlet并将电子邮件值保存到会话.该SignIn代码很简单,这里是它的doGet主要作用:
String email = req.getParameter("email"); //getting the parameter from html form
...
...
HttpSession session = req.getSession(); //create a new session
session.setAttribute("email", email);
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,我已经证实这些数值不是null在这一点上.现在出现了问题,我想重定向到ShowOnline.java需要进行更多处理的另一个servlet().当我写作
resp.sendRedirect(resp.encodeRedirectURL("/ShowOnlineServlet"));
Run Code Online (Sandbox Code Playgroud)
ShowOnline获取null会话值(我之前保存的第二个相同的电子邮件属性null)
当我写作
getServletConfig().getServletContext().getRequestDispatcher("/ShowOnlineServlet");
Run Code Online (Sandbox Code Playgroud)
一切都好,以前的邮件属性不是null!
到底是怎么回事?sendRedirect()只是让你的浏览器发送一个新请求,它不应该影响会话范围.我已经检查了cookie并且它们很好(这是以前的会话,因为它是我的webapp创建的第一个也是唯一一个会话,而且我甚至打扰并检查了sesison ID,并且它们在两个请求中都是相同的) .
为什么sendRedirect()和之间会有区别forward()?简单的解决方案是使用,forward()但我想在我放手之前了解这一点,我认为了解发生的事情对我来说很重要.我不确定我喜欢不知道这些基本概念发生了什么的想法(因为我是初学者,我的整个webapp在这一点上非常简单和基本).
任何想法的想法或建议都将受到热烈欢迎!
在角度指令中,我也在教程中看到过
link: function($scope,$element,attrs)
Run Code Online (Sandbox Code Playgroud)
要么
link: function(scope,element,attrs)
Run Code Online (Sandbox Code Playgroud)
现在我知道'$'意味着有角度的服务,这在这里举行吗?$ scope和scope之间究竟有什么区别?元素与$元素相同
我正在开发一个Chrome扩展程序,需要保存一些信息(主要是标签信息),这些信息将在扩展程序的整个生命周期中存在(例如,因为用户开始使用它直到他关闭浏览器).
一个选项是使用localstorage,但localstorage只能保存字符串,这使我感到非常不舒服(因为我有一堆数据要保存 - 日期,URL,整数等).我正在寻找的是使用我自己的javascript对象,这些对象将在整个扩展期间生效.
现在的问题是,每次用户点击浏览器操作时,在某些javascript文件的脚本中定义这些对象都会将其删除.换句话说,我有一个名为popup.html的浏览器操作,其中包含一个javascript文件(我想在其中保存我的对象),每次用户点击浏览器操作时,我在JS文件中定义的所有对象都会丢失,我希望一切都能坚持下去.
我有什么选项可以保持数据在浏览器操作中不断点击并且不是localstorage?
我试图在ng-repeat(使用css过渡)中创建一个add\remove动画.由于某种原因,淡出效果始终发生在列表的底部而不是您选择删除的项目上(例如,尝试删除第一项,效果显示在底部).这是一个傻瓜 http://plnkr.co/edit/XdGHKhf5z5BQMaYk1Naz?p=preview
有什么想法吗 ?
javascript ×6
angularjs ×4
php ×3
attributes ×1
codeigniter ×1
fromcharcode ×1
html ×1
java ×1
jquery ×1
laravel ×1
object ×1
servlets ×1
session ×1
string ×1