以angularjs形式定义默认值,验证不起作用

时间:2014-08-01 14:56:20

标签: javascript angularjs

我迷失了我的表单中定义默认值:http://1ffa3ba638.url-de-test.ws/zombieReport/partials/popup.html

验证也没有工作......

/*********************************** SubmitCtrl ***********************************/
app.controller('SubmitCtrl', ['$scope', '$http', '$timeout', function($scope, $http, $timeout) {

    /* data pre-define : date & url for test */
    $scope.myForm = {};
    $scope.myForm.date = new Date();
    $scope.myForm.url = "prout";

    /* ng-show things */
    $scope.successMailZR = false;
    $scope.errorMailZR = false;

    $scope.send = function() {
        if ($scope.myForm.$valid) {
            alert('ok');
        }
    };

}]);

定义默认值的正确方法是什么?


编辑:

对于url我是这样做的:

<input type="text" class="form-control" name="url" placeholder="{{myForm.url}}" value="{{myForm.url}}" ng-model="myForm.url" readonly="readonly" />

它不能正常工作

2 个答案:

答案 0 :(得分:3)

绑定模型$scope.myForm与表单名称<form name="myForm"之间存在冲突。

Angular会将表单的控制器分配到$scope作为其名称,即$scope.myForm,并覆盖已初始化的内容。

将表单名称或绑定变量更改为具有不同的名称。

答案 1 :(得分:1)

在HTML中:

<input value="default"> 

或使用Angular的ng-model:

<div ng-controller="YourCtrl">
    <input ng-model="value">
</div>

function YourCtrl($scope) {
    $scope.value = 'default';
}