角度多个控制器$ scope

时间:2015-04-12 18:38:34

标签: javascript angularjs angularjs-scope angularjs-controller

我是Angular的新手并试图找出不同控制器中的$ scope。我已经阅读了很多主题,但似乎无法找出它在我的代码中无效的原因。

我想要的是一个单页应用程序,但它有点复杂(对我来说),用普通的旧JS构建它我想将它转换为角度但是在使用$ scope和多个控制器时遇到问题。 / p>

当有人点击Dongel'它显示了dongel的手册。 当我点击顶部手册时,它会转到/ dongel-start并且应该加载' secondController'管理dongel安装手册的所有上下文和值,但我似乎无法访问secondController $ scope?

首先我的HTML设法使用ng-view和$ routeProvider

<div id="wrap">

<div ng-view></div>

</div>

我的angular JS文件包含以下内容:

(function() {

var app = angular.module("instructions", ['ngRoute']);

app.config(function ($routeProvider) {

    $routeProvider

        .when('/', {
            templateUrl: 'welcome-page.html',
            controller: 'productController'
        })

        .when('/dongel-start', {
            templateUrl: 'dongel-start.html',
            controller: 'secondController'
        })

});

app.controller('productController', function($scope) {

    $scope.products = [
    { 
    name: 'Dongel',
    image: 'images/dongel.png',
    manuals: [
        {
        name: 'Geen Verbinding?',
        value: 'dongel-start'
        },
        {
        name: 'Installatie',
        value: 'dongel-start'
        },
        {
        name: 'APN Controleren',
        value: 'dongel-apn'
        },
        {
        name: 'Saldo',
        value: 'dongel-saldo'
        }
    ],
    value: 'Dongel'
    },
    { 
    name: 'Mifi',
    image: 'images/mifirouter.png',
    manuals: [
        { 
        name: 'Geen Verbinding?',
        value:'mifi-start'
        },
        {
        name: 'APN Controleren',
        value: 'mifi-apn'
        },
        {
        name: 'Saldo',
        value: 'mifi-saldo'
        }
    ],
    value: 'Mifi'
    }
    ];

$scope.showManuals = function(s){
        $scope.current = s.name; /* changing value of current*/
};


});


app.controler('secondController', function($scope) {

    $scope.systems = [
        {
            name: 'Windows'
        },
        {
            name: 'Apple'
        }
        ];

});


})();

第一页工作正常,它采用$ scope.products的值 当我到达第二页时:     

    <h2>Kies een besturingssysteem</h2>

    <ul style="height:100px;">
        <li ng-repeat="system in systems">
        {{system.name}}
        </li>
    </ul>

我正在尝试再次访问这些变量,但没有任何表现出来我已经指定了&#39; secondController&#39;以某种方式,$ scope不会与第一页相同。

第二页上的结果仅显示我手动输入的标题。 我似乎无法访问

{{system.name}}

我会做一个小提琴,但它不支持路由:/

1 个答案:

答案 0 :(得分:0)

你在secondController定义中有一个拼写错误。你有app.controler,显然不会从第二个控制器中取出控制器,但是其他的。