需要 Angular 组件时找不到相对路径
Relative path not found when requiring a Angular component
我正在使用 Browserify 进行捆绑和 Angularjs 框架。场景是,我有一个 Angularjs 组件,它有一个指令定义为 -
var loginDirective = /*@ngInject*/ function(){
return{
templateUrl:'views/login/templates/loginComponent.html',
link:function(scope,ele,attr){
}
}
};
当我 运行 组件单独使用 browserify 时,这非常有效。现在我有一个项目 "MyAPP",我使用 NPM install 在项目的 node_modules 文件夹中获取这个组件。
然后我需要这个组件并像这样在项目中包含 DI
var angular = require('angular');
require ('baseComponent');
module.exports = angular.module('mainComponent',['baseComponent'])
DI 工作正常,但我收到一条错误消息,提示无法找到组件 'views/login/templates/loginComponent.html'
,因为它开始在我的项目 view
文件夹中搜索,而不是它自己的 view
文件夹。
如何解决这个问题?
我认为常见的方法是将模板放入您的 JavaScript-Code 并手动将其加载到模板缓存中。像这样:
angular.module('mainComponent').run(function($templateCache) {
var template = '<h1> LoginComponent </h1>';
$templateCache.put( 'loginComponent.html' , template );
});
指令中的 templateUrl 应如下所示:
var loginDirective = /*@ngInject*/ function(){
return{
templateUrl: 'loginComponent.html',
link: function(scope,ele,attr){
}
}
};
您可以在许多开源库中看到这一点,例如 ui-bootstrap、ui-grid,例如
我正在使用 Browserify 进行捆绑和 Angularjs 框架。场景是,我有一个 Angularjs 组件,它有一个指令定义为 -
var loginDirective = /*@ngInject*/ function(){
return{
templateUrl:'views/login/templates/loginComponent.html',
link:function(scope,ele,attr){
}
}
};
当我 运行 组件单独使用 browserify 时,这非常有效。现在我有一个项目 "MyAPP",我使用 NPM install 在项目的 node_modules 文件夹中获取这个组件。 然后我需要这个组件并像这样在项目中包含 DI
var angular = require('angular');
require ('baseComponent');
module.exports = angular.module('mainComponent',['baseComponent'])
DI 工作正常,但我收到一条错误消息,提示无法找到组件 'views/login/templates/loginComponent.html'
,因为它开始在我的项目 view
文件夹中搜索,而不是它自己的 view
文件夹。
如何解决这个问题?
我认为常见的方法是将模板放入您的 JavaScript-Code 并手动将其加载到模板缓存中。像这样:
angular.module('mainComponent').run(function($templateCache) {
var template = '<h1> LoginComponent </h1>';
$templateCache.put( 'loginComponent.html' , template );
});
指令中的 templateUrl 应如下所示:
var loginDirective = /*@ngInject*/ function(){
return{
templateUrl: 'loginComponent.html',
link: function(scope,ele,attr){
}
}
};
您可以在许多开源库中看到这一点,例如 ui-bootstrap、ui-grid,例如