[英]Angular not recognizing jQuery after dependency move from package.json to bower.json
To start, I had angular
, angular-bootstrap
, and jquery
in package.json
and everything is compiled via browserify
. 首先,我在
package.json
有angular
, angular-bootstrap
和jquery
,所有内容都是通过browserify
编译的。
// package
"dependencies": {
"angular": "~1.4.6",
"angular-bootstrap": "~0.12.2",
"jquery": "~2.1.4"
}
angular-bootstrap
does not have anything higher than 0.12.2 in NPM, so I switched ng-bootstrap over to bower.json
angular-bootstrap
在NPM中的值不高于0.12.2,因此我将ng-bootstrap切换到bower.json
// bower
"dependencies": {
"angular-bootstrap": "~0.13.4"
}
And added aliases in my package.json
并在我的
package.json
添加了别名
// package
"browser": {
"angular-bootstrap": "./bower_components/angular-bootstrap/ui-bootstrap.js",
"angular-bootstrap-tpls": "./bower_components/angular-bootstrap/ui-bootstrap-tpls.js"
}
After doing all this, jQuery
is still available in the global namespace (accessible in the browser console), but angular
directives no longer seem to pick use jQuery
. 完成所有这些操作后,
jQuery
在全局名称空间中仍然可用(可在浏览器控制台中访问),但是angular
指令似乎不再选择使用jQuery
。
In my directive
s if I log out the element
or view its prototype ( element.__proto__
) I only see the basic jqLite
methods available, not the full jQuery
that was available before I made the switch to bower (and that I see when looking at jQuery
in the console). 在我的
directive
s中,如果我注销element
或查看其原型( element.__proto__
),我只会看到基本的jqLite
方法可用,而不是在切换到jqLite
可用的完整jQuery
(并且在查看时控制台中的jQuery
)。
// directive
.directive('myDirective', function() {
return function(scope, element, attrs) {
console.log(element);
console.log(Object.getPrototypeOf(element)); // <-- No jQuery methods available, only jqLite
};
});
I tried a few different ways of shimming dependencies, but I don't think this is necessary given that jQuery
is loaded via package
and not bower
. 我尝试了几种不同的方式来填充依赖关系,但是考虑到
jQuery
是通过package
而不是bower
加载的,因此我认为这不是必需的。
// package
"browserify-shim": {
"angular-bootstrap": {
"depends": "jquery:jQuery"
}
}
Any help would be appreciated - not sure what I'm missing here. 任何帮助将不胜感激-不确定我在这里缺少什么。
Here is what I have and jQuery is rightly resolved on top of jqlite: 这是我所拥有的,并且在jqlite之上正确解决了jQuery:
bower.json bower.json
"dependencies": {
"jquery": "2.1.4"
},
"resolutions": {
"jquery": "2.1.4"
}
package.json package.json
"browserify": {
"transform": [ "browserify-shim" ]
},
"browser": {
"jquery": "./bower_repo/jquery/dist/jquery.js"
},
"browserify-shim": {
"jquery": "$"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.