angular.js无法正常注入



 <!DOCTYPE html>
<html lang="zh-CN" ng-app>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta charset="UTF-8">
    <script type="text/javascript" src="js/angular.min.js"></script>
    <script type="text/javascript" src="js/angular-route.min.js"></script>
    <script type="text/javascript" src="js/VLib.js"></script>
    <script type="text/javascript" src="js/main.js"></script>
</head>
<body ng-controller="getConfig">
    {{title}}
</body>
</html>


 function getConfig($scope, $http) {
    $http.get('sources/config.json').success(function(data) {
        $scope = data;
        console.log($scope.title);
    });
};

以下是sources/config.json的内容


 {
    "title": "VDON"
}

为何body中无法正常显示VDON
控制台中输出VDON。

才刚开始接触angular.js主要是被它的双向绑定和路由吸引。

请问哪里出错了,导致{{title}}没有正常输出?

json Ajax angularjs JavaScript

snjxzha 10 years, 3 months ago

很低级的基础问题,AngularJS模板中所有使用的变量都是在$scope对象上的,建议一般在每个controller设置一个 vm对象,var vm = $scope.vm = {};这个controller所有使用到的变量和方法都存储在vm对象上即可。

lesbian answered 10 years, 3 months ago

跟angular无关,是传址传值的问题,你把整个data覆盖了$scope当然不行,要

$scope.title = data.title

LCKCH answered 10 years, 3 months ago

你把 $scope = data 替换成 $scope.data = data ,然后模版里的 {{title}} 换成 {{data.title}} 即可。

至于原因,我建议你用 console.log 查看前后两种写法中 $scope 对象的差异,之后你应该会明白为什么。如果再不明白,继续提问或搜索。

Aeyssmn answered 10 years, 3 months ago

Your Answer