パーシャルをクリーンアップするために、最近、いくつかのグローバル メニューを別のテンプレートに移動し、それらを必要とするビューに含めるようにしました。メニュー (検索バーを含む) はグローバルなので、メニューの状態などを追跡するサービスを作成しました。
問題は、インクルードを開始した後に何かおかしなことが起こったことです。
ビューの HTML (ジェイド)
div(ng-controller='HeroUnitCtrl', ng-include src='heroTemplate')
div(ng-controller='MainSearchBarCtrl', ng-include src='searchBarTemplate')
div.row-fluid
div.span12
table.table.table-striped.table-bordered
tr
th
a(ng-click='setOrder("id")') ID#
th
a(ng-click='setOrder("client.name")') Kunde
th
a(ng-click='setOrder("technician.name")') Tekniker
th
a(ng-click='setOrder("createdAt")') Opprettet
th
a(ng-click='setOrder("statusString")') Status
tr(ng-repeat='record in records | orderBy:orderProp | filter:searchBar')
td
a(ng-href='#/records/show/{{record.id}}') {{record.id}}
td {{record.client.name}}
td {{record.technician.name}}
td {{record.createdAt}}
td {{record.statusString}}
HTML (ジェイド) searchBarTemplate
input#searchField.input-xxlarge(type='text', placeholder='placeholder', ng-change='searchBarUpdated()', ng-model='searchBar')
いまいちよくわからないところまで、
MainSearchBarCtrl
function MainSearchBarCtrl(MainSearchBarService, $scope, $location) {
$scope.searchBarTemplate = 'partials/main-searchbar';
$scope.searchBar = 'Hello World!';
$scope.searchBarUpdated = function() {
console.log('Search bar update: ' + $scope.searchBar);
MainSearchBarService.searchBarUpdated($scope.searchBar);
}
}
最初のsearchBarの値は、予想どおり「Hello World」です。ただし、テキストを追加すると、「Hello World」のみが出力されます。または、テキストを置き換えると、undefined が出力されます。バインディングが壊れているようですが、なぜこれが起こっているのかわかりません。言及する価値があるのは、検索バーを別のテンプレートに移動する前は、これは当てはまらなかったということです.
どんな助けでも大歓迎です。