Ich habe Probleme mit der Bindung in Component Router.Binding in Component Router - Angular 1.5
Es wird gesagt im Entwicklerhandbuch sollten Sie vermeiden, $ scope in Komponenten zu verwenden, daher müssen Objekte durch Binding übergeben werden.
Anhand von Beispielen in: https://docs.angularjs.org/guide/component und https://docs.angularjs.org/guide/component-router ich kam mit:
HTML:
<div ng-app="app" ng-controller="MainCtrl as ctrl">
{{ ctrl.hero.name }}
<app></app>
</div>
Javascript:
'use strict';
var app = angular.module('app', [
'ngComponentRouter',
'testComponent',
])
.config(function($locationProvider) {
$locationProvider.html5Mode(true);
})
.value('$routerRootComponent', 'app')
.controller('MainCtrl', function(){
this.hero = {
name: 'Spawn'
};
})
.component('app', {
template: '<ng-outlet></ng-outlet>',
$routeConfig: [
{path: '/test', name: 'Test', component: 'testComponent'},
],
})
var testComponent = angular.module('testComponent', []);
testComponent.component('testComponent', {
template: '<span>Name: {{$ctrl.hero.name}}</span>',
controller: TestComponentController,
bindings: {
hero: '=',
}
});
function TestComponentController() {
}
Aber <span>Name: {{$ctrl.hero.name}}</span>
zeigt nicht "Spawn" oder etwas.
Danke zur Klärung – srokatonie