dart - In AngularDart, how should I reference my templates in templateUrl so they work for both Dartium and dart2js? -
i have directory layout:
project web app.html main.dart templates app.html alerts.html menu.html components appcomponent.dart alertscomponent.dart menucomponent.dart resources css bootstrap.css my components like:
@component( selector: 'app', templateurl: 'templates/app.html' ) class appcomponent { ... } my application's index.html (in project) served /client, , project/web served /project. above works in dartium, errors pub build:
[warning _serial on project|web/main.dart input project|web/components/appcomponent.dart]: line 3, column 1 of web/components/appcomponent.dart: unable find templates/app.html @ project|templates/app.html @component( ^^^^^^^^^^^ and
[warning _serial]: unable find webatara|web/main.dart html_files in pubspec.yaml. and
[warning templatecachegenerator]: can't find asset web/web/templates/app.html. depending on combination of paths use in templateurl , html_files (for angular's transformer).
what, exactly, should go , how should referenced in templateurl , pubspec.yaml?
update: can rid of build errors moving templates lib directory , using templateurl: 'packages/project/templates/app.html', dartium tries load /packages/project/templates/app.html, , not /project/packages/project/templates/app.html, correct. don't see way tell base url is.
but dartium tries load /packages/project/templates/app.html, , not /project/packages/project/templates/app.html, correct. don't see way tell base url is.
i believe using angulardart 1.1.1 or 1.1.2? had same issue in our project after switching 1.1.0 1.1.2. weird behaviour added since version 1.1.1.
for reason default package root in angulardart '/packages/'. causes generation of root-relative urls. in case generates
/packages/project/templates/app.html instead of
packages/project/templates/app.html it's ok while app in root of domain. in case need add following initialization method in main.dart:
bind(resourceresolverconfig, tovalue: new resourceresolverconfig .resolverelativeurls(true, packageroot: 'packages/')); this override angular's default packages root , make generate correct relative urls.
hope helps.
Comments
Post a Comment