Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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复选框不在具有ng true值的窗体内工作_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 加载时默认选中Angularjs复选框不在具有ng true值的窗体内工作

Javascript 加载时默认选中Angularjs复选框不在具有ng true值的窗体内工作,javascript,html,angularjs,Javascript,Html,Angularjs,我知道也有类似的问题,但是这个复选框在表单中。如何在加载时默认选中“订阅”复选框 以下是我的HTML的一部分: <div ng-app="app9" ng-cloak> <div ng-controller="userCtrl"> <form name="userForm" ng-submit="saveUser(userInfo)"> <label>First

我知道也有类似的问题,但是这个复选框在表单中。如何在加载时默认选中“订阅”复选框

以下是我的HTML的一部分:

    <div ng-app="app9" ng-cloak>    
        <div ng-controller="userCtrl">
            <form name="userForm" ng-submit="saveUser(userInfo)">
                <label>First Name :</label>
                <input type="text" name="fname" ng-model="userInfo.fName"/>   
                <br />    
                <label>Last Name :</label>
                <input type="text" name="lname" ng-model="userInfo.lName"/>  
                <br />    
                <label>Street :</label>
                <input type="text" name="street" ng-model="userInfo.street"/>
                <br />    
                <label>Subscribe :</label>
                <input type="checkbox" name="subscribe" ng-model="userInfo.subscribe" />    
                <br />    
                <label>Delivery Method :</label>
                <select name="delivery" ng-model="userInfo.delivery" ng-required="true" >
                    <option value="Email">Email</option>
                    <option value="Mail">Mail</option>
                </select>

                <br /><br />

                <input type="submit" value="Save" ng-disabled="userForm.$invalid"/>

                <ul>
                    <li ng-repeat="item in user">
                        {{'User: ' + item.fName + ' ' + item.lName + ' ' + item.street + ' ' + item.subscribe + ' ' + item.delivery}}
                    </li>
                </ul>
            </form>
        </div>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.2/angular.min.js"></script>
    <script src="js/exam9.js"></script>
</body>
我尝试过userInfo.subscribe=true和$scope.userInfo.subscribe=true

更新:抱歉,这可能是一个重复的问题。它对我不起作用的原因是因为我原来有:

<input type="checkbox" name="subscribe" ng-model="userInfo.subscribe" ng-true-value="'Subscribe'" ng-false-value="'Don\'t Subscribe'"/>
应该是:

$scope.userInfo = {};
$scope.userInfo.subscribe = 'Subscribe';

您应该首先在$scope上声明userInfo对象

使用以下代码对我有效:

var app9 = angular.module('app9', []);
app9.controller('userCtrl', function ($scope) {        
    $scope.userInfo = {};
    $scope.userInfo.subscribe = true;
    $scope.saveUser = function (userInfo) {
        if ($scope.userForm.$valid) {
            $scope.user.push({
                fName: userInfo.fName,
                lName: userInfo.lName,
                street: userInfo.street,
                subscribe: userInfo.subscribe,
                delivery: userInfo.delivery
            });
            console.log("User saved");
        } else {
            console.log("Error: Couldn't save user")
        }
    }
});

您没有在任何地方初始化userInfo。您可以在html中执行ng init或将userInfo.subscribe更改为$scope.userInfo={subscribe:true};谢谢你的帮助。成功了。
$scope.userInfo = {};
$scope.userInfo.subscribe = 'Subscribe';
var app9 = angular.module('app9', []);
app9.controller('userCtrl', function ($scope) {        
    $scope.userInfo = {};
    $scope.userInfo.subscribe = true;
    $scope.saveUser = function (userInfo) {
        if ($scope.userForm.$valid) {
            $scope.user.push({
                fName: userInfo.fName,
                lName: userInfo.lName,
                street: userInfo.street,
                subscribe: userInfo.subscribe,
                delivery: userInfo.delivery
            });
            console.log("User saved");
        } else {
            console.log("Error: Couldn't save user")
        }
    }
});