我正在嘗試構建指令來處理重複的發言者列表的呈現。這裏的最終目標是使頁面自動反映在模式中進行的更新。無法將模型綁定到模板
我在這裏看到的問題是,speakers
對象似乎沒有成爲模板。
這是填充speakers
的功能。這被稱爲模態的承諾。 speakers
是speaker
對象的集合。數據按預期返回。
$scope.updateSpeakersList = function() {
factory.callGetService("GetSpeakers?eventId=" + $scope.event.eventId)
.then(function (response) {
var fullResult = angular.fromJson(response);
var serviceResponse = JSON.parse(fullResult.data);
$scope.speakers = serviceResponse.Content;
if ($scope.speakers === null) {
$scope.hasSpeakers = false;
} else {
$scope.hasSpeakers = ($scope.speakers.length > 0);
}
LogErrors(serviceResponse.Errors);
},
function (data) {
console.log("Unknown error occurred calling GetSpeakers");
console.log(data);
});
}
// other code... then this
modalInstance.result.then(function (savedSpeaker) {
console.log("BEGIN modalInstance.result");
$scope.savedSpeaker = savedSpeaker;
console.log("$scope.savedSpeaker = " + $scope.savedSpeaker);
$scope.updateSpeakersList();
console.log("END modalInstance.result");
}, function() {
console.log("Modal dismissed at: " + new Date());
});
HTML看起來像這樣。
<div class="container" ng-show="hasSpeakers">
<div class="row">
<speaker-cards data="speakers"></speaker-cards>
</div>
</div>
該指令非常簡單。
.directive("speakerCards", function() {
return {
restrict: "E",
templateUrl: "/Apps/Event/Templates/_default/speaker-cards.html",
scope: {
data: "="
}
};
});
「揚聲器卡」模板比這複雜一點,但你應該明白。
<!-- BEGIN speaker cards -->
<div ng-repeat="speaker in speakers | orderBy: 'SpeakerName'">
<div class="clearfix" ng-if="$index % 3 == 0"></div>
<div class="col-sm-4">
<div class="card">
<span class="speaker-name">{{speaker.SpeakerName}}</span><br/>
<span class="speaker-title">{{speaker.CompanyTitle}}</span><br/>
<span class="speaker-company">{{speaker.CompanyName}}</span>
</div>
</div>
</div>
<!-- END speaker cards -->
而且沒有出現的音箱,我不認爲speakers
是使它到模板的原因,是因爲所產生的標記看起來是這樣的。
對於'$ scope',tellercards指令似乎沒有'speaker'屬性。將揚聲器中的揚聲器更改爲數據中的揚聲器,或將數據屬性更改爲揚聲器:範圍:{揚聲器:「=數據」}「。看看這是否有所作爲。 – Gustav
@Gustav這樣一個簡單的事情......修復它。我在元素中設定了屬性「揚聲器」。您應該將其作爲答案發布。 :) –
Arkantos的答案基本相同,你應該接受一個。 – Gustav