2014-10-14 3 views
0

Прошу прощения, если этот вопрос повторен, но я все еще не могу найти решение для этого. Это мой первый опыт работы с AngularJS, поэтому, пожалуйста, несите меня.AngularJs, выражения не отображаются

мой простой HTML:

<html lang="en" ng-app="myApp"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Angular Practice</title> 
    <script src="lib/angular/angular.min.js"></script> 
    <script src="lib/angular/controller.js"></script> 
</head> 
<body> 

<div ng-controller="simple"> 
    <h1>{{ author.name }}</h1> 
    <p>{{ author.title }}</p> 
</div> 
</body> 
</html> 

А вот и controller.js, что я получил от учебника AngularJS в:

var myApp = angular.module('myApp', []); 

myApp.controller('simple', function ($scope) { 
    $scope.author = [ 
     {'name': 'Parker', 
     'title': 'Full Stack Developer'} 
    ]; 
}); 

Тогда, когда я иду в браузере на моем HTML, это пустой.

+3

У вас есть массив. Поэтому 'author [0] .name' должен работать, кажется, что вам просто нужен объект, поэтому измените его на' $ scope.author = {'name': 'Parker', 'title': 'Full Stack Developer'} 'и получить доступ к тому, как у вас есть – PSL

+0

@PSL - спасибо! – user3757305

+0

@PSL Может быть, вы должны оставить свой комментарий в виде ответа. Я просто публиковал те же вопросы, что и ответ, когда читал ваш комментарий. –

ответ

2

В вашей $ scope у вас есть свойство author, то есть массив. Если вы получаете доступ, как вы делаете, с author.name, это не сработает, потому что вы пытаетесь получить доступ к свойству name в объекте массива, который не имеет свойства name.

Итак, я хотел бы предложить вам изменить его на:

$scope.author = { 
    name: 'Parker', 
    title: 'Full Stack Developer' 
}; 

Кроме того, доступ как

{{ author[0].name }} 

также будет работать, но это не имеет смысла, чтобы иметь массив здесь, где вы хотят иметь, по-видимому, только один объект.

+1

Yup, правильно сказал .. :) – PSL

Смежные вопросы