Javascript 如何在$scope AngularJS中声明对象

Javascript 如何在$scope AngularJS中声明对象,javascript,angularjs,Javascript,Angularjs,我正在使用AngularJS,我正在尝试创建一个模板,其中我有一个隐式对象调用test,在test内部,我有一个数组,当我在控制器内调用函数时,我想重复这个数组,但当我尝试将一个对象推到数组内时,我得到了未定义的错误 下面是我的代码示例: <body ng-app="MyApp" ng-controller"MyController"> <input ng-model="person.name"> <button ng-click="createPh

我正在使用AngularJS,我正在尝试创建一个模板,其中我有一个隐式对象调用test,在test内部,我有一个数组,当我在控制器内调用函数时,我想重复这个数组,但当我尝试将一个对象推到数组内时,我得到了未定义的错误

下面是我的代码示例:

<body ng-app="MyApp" ng-controller"MyController">
    <input ng-model="person.name">
    <button ng-click="createPhone()">
    <div data-ng-repeat="phone in person.phones">
        <input ng-model="phone.number">
    </div>
    </div>
</div>
我得到:

TypeError:无法设置未定义的属性“phones”


有人能帮我吗?

你会想做这样的事情:

示例如下所示:

HTML:

<div ng-app>
    <div ng-controller="TestCtrl">
        <input ng-model="person.name" />
            <button ng-click="createPhone()">Create Phone</button>
        <div ng-repeat="phone in person.phones">
            <input ng-model="phone.number" />
        </div>
    </div>
</div>

您还没有定义$scope.a,至少没有从代码段中定义。你能分享你的控制器代码吗?另外,您的createB函数定义不正确,它应该遵循$scope.createB=function(){}的语法。在我的控制器中,我确实没有定义$scope.a,但是如何用b对象声明呢?您发布的html不正确。ng控制器在哪里?您使用“控制器作为”吗?为什么要混合使用数据前缀?“测试”的定义在哪里?您是否定义了
$scope.a
$scope.b
?我会发布你的整个控制器,这样我们就可以看到你在做什么。你需要定义$scope.a,这样你就可以给它分配一个b属性。你的代码让人困惑,你到底想实现什么,你想在UI中显示什么样的排序信息?我猜你只是想做这样的事情-我有一个类似的问题,我已经用你的帖子解决了这个问题,但是现在我想给手机添加方法,我该怎么做?有没有办法将电话逻辑置于不同的控制器中?
<div ng-app>
    <div ng-controller="TestCtrl">
        <input ng-model="person.name" />
            <button ng-click="createPhone()">Create Phone</button>
        <div ng-repeat="phone in person.phones">
            <input ng-model="phone.number" />
        </div>
    </div>
</div>
function TestCtrl($scope) {
    $scope.person = {
        name : "User",
        phones : [{number: 12345}]
    };

    $scope.createPhone = function () {

        $scope.person.phones.push({
            'number' : '111-222'
        });

    };
}