Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs模板:模型和函数停止在外部模板中工作?_Javascript_Angularjs_Model View Controller - Fatal编程技术网

Javascript Angularjs模板:模型和函数停止在外部模板中工作?

Javascript Angularjs模板:模型和函数停止在外部模板中工作?,javascript,angularjs,model-view-controller,Javascript,Angularjs,Model View Controller,在此之后,我面临另一个挑战,$scope中的模型和函数似乎已经停止工作。下面是测试代码,添加按钮似乎不再收集我从输入的任何数据 html 有什么办法可以修复它吗?使用 <input type='text' ng-model='$parent.newPerson' /> ng include创建一个新的作用域,因为newPerson是一个简单的属性,所以它在子作用域和父作用域上是不同的(即更改一个作用域不会更改另一个作用域)。因此,当包含的模板设置为newPerson时,它在主控

在此之后,我面临另一个挑战,$scope中的模型和函数似乎已经停止工作。下面是测试代码,添加按钮似乎不再收集我从
输入的任何数据

html

有什么办法可以修复它吗?

使用

<input type='text' ng-model='$parent.newPerson' />

ng include
创建一个新的作用域,因为newPerson是一个简单的属性,所以它在子作用域和父作用域上是不同的(即更改一个作用域不会更改另一个作用域)。因此,当包含的模板设置为
newPerson
时,它在主控制器的作用域上仍然为空


要更好地了解作用域的工作原理,请阅读

它在yea中工作,但为什么在localhost上不工作?不知道,但请尽量简化。首先包括“包括”。它可能没有错,但你永远不知道。
首先包含“include”。
对不起,你是什么意思?如何
首先包含“include”。
调试的第一步是删除不必要的代码。直到有东西开始工作或者所有的角度代码都消失了。然后添加一个
$scope
属性,然后从那里开始工作。@lauthiamkok噢,伙计,我本来可以这么快解决这个问题的。你的问题不清楚这是你的问题。您说,
$scope
不起作用,所以听起来好像根本没有数据绑定起作用。这只是子作用域继承的一个问题。是的,抱歉对angular来说是新的,并且觉得它非常可怕。
<div id='content'>
    <input type='text' ng-model='searchText' />
    <ul>
        <li ng-repeat='person in people | filter:searchText' ng-show='person.live == true'>#{{person.id}} {{person.name}}</li>
    </ul>
    <input type='text' ng-model='newPerson' />
    <button ng-click='addNew()'>Add</button>

</div>
var app = angular.module('MyTutorialApp',[]);
app.controller("MainController", function($scope){

    $scope.thisIsAScopeProperty = 'template/index.html';
    $scope.people = [
        {
            id: 0,
            name: 'Leon',
            music: [
                'Rock',
                'Metal',
                'Dubstep',
                'Electro'
            ],
            live: true
        }
    ];
    $scope.newPerson = null;
    $scope.addNew = function() {
        alert(1); // works here when you click the Add button
        console.log($scope.newPerson); // but returns nothing when you type any text in the input
        if ($scope.newPerson != null && $scope.newPerson != "") {
            alert(2); // does not work here
            $scope.people.push({
                id: $scope.people.length,
                name: $scope.newPerson,
                live: true,
                music: [
                    'Pop',
                    'RnB',
                    'Hip Hop'
                ]
            });
        }
    }
});
<input type='text' ng-model='$parent.newPerson' />