я могу заставить его работать, когда жестко прописывать данные, как это:Как подтолкнуть JSON в гнездовой массив - angularjs
$scope.ChatHistory=[];
$scope.ChatHistory.push({
IsCustomer: false,
UserText: "Please enter the category you are looking for.",
OptionItems: [
{ OptionId: "", SortOrder: "1", OptionName: "Complaint" },
{ OptionId: "", SortOrder: "2", OptionName: "Registration" },
{ OptionId: "", SortOrder: "3", OptionName: "Enquiry" }
]
});
HTML:
<ul>
<li ng-repeat="objHistory in ChatHistory track by $index"
ng-class="{'user': objHistory.IsCustomer, 'desk': !IsCustomer}">
{{ objHistory.UserText }}
<p ng-repeat="opt in objHistory.OptionItems track by $index">
{{ opt.SortOrder }} {{ opt.OptionName }}
</p>
</li>
</ul>
Теперь я получаю данные из БД, как это:
$scope.GetData = function (categoryId) {
DataFactory.GetData(categoryId)
.success(function (data,status) {
$scope.ChatHistory.push(data);
console.log(data);
})
.error(function (data, status) {
});
}
// журнала консоли
"{\"IsCustomer\":false,
\"UserText\":\"\",
\"OptionItems\":[
{\"OptionId\":1,\"SortOrder\":1,\"OptionName\":\"Complaint\"},
{\"OptionId\":2,\"SortOrder\":2,\"OptionName\":\"Request\"},
{\"OptionId\":3,\"SortOrder\":3,\"OptionName\":\"Enquiry\"}
]
}"
Как переместить эти данные в массив «ChatHistory». $ scope.ChatHistory.push (данные) не работает. Нет ошибки, но ничего не отображается в html.
После применения изменений применяется область применения (i.o.w. $ scope. $ Apply())? –
Вы объявили ChatHistory как массив, чтобы вы могли нажать на него? '$ scope.ChatHistory = [];' –
Я думаю, что область применения применяется. Я проверил console.log ($ scope.ChatHistory) – Qwerty