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