Home  >  Q&A  >  body text

javascript - 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}}没有正常输出?

黄舟黄舟2749 days ago529

reply all(3)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 14:34:23

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

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

    reply
    0
  • 阿神

    阿神2017-04-10 14:34:23

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

    $scope.title = data.title

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:34:23

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

    reply
    0
  • Cancelreply