ng-click无法处理提交按钮

时间:2017-06-23 11:02:33

标签: javascript angularjs

单击“提交按钮”

时,

ng-click无效

<div ng-app="myFirstApp" ng-controller="studentController as studentController">
    <form>
        <input type="text" name="name" ng-model="studentController.student.name"/>
        <input type="text" name="class" ng-model="studentController.student.class"/>
        <input type="button" value="Submit" ng-click="studentController.student.submit()"/>
    </form>
    </div>

以下是我"Student"工厂的代码。

app.factory('Student',[ function() {

// Contructor
function Student(data){
    if(data){
        this.setData(data);
    }
};

// Functions
Student.prototype = {
    setData: function(data){
        angular.extend(this,data);
    },

    new: function(){
        var studentData ={
            name:"",
            class:""
        }
        this.setData(studentData);
    },

    submit: function(){
        console.log(this);
    }


};

return Student;
}]);

这里是"studentController"代码

app.controller('studentController',studentController);
function studentController(Student){
    var student = new Student();
    student.new();
    console.log(student);
};

我不知道我在哪里做错了,我在控制台中没有出错。 我尝试在studentFactory中运行其他方法,但没有一个方法正在运行。

为什么ng-click无效studentController.student.submit(),因为我在studentController as studentController代码中使用<div>

4 个答案:

答案 0 :(得分:0)

我认为您应该使用以下HTML

    <form ng-submit="studentController.student.submit()">
        <input type="text" name="name" ng-model="studentController.student.name"/>
        <input type="text" name="class" ng-model="studentController.student.class"/>
        <input type="submit" value="Submit"/>
    </form>

感谢

答案 1 :(得分:0)

<form name="reviewForm" novalidate="novalidate" valid-submit="submitClick()">
    <input type="text" name="name" ng-model="studentController.student.name"/>
    <input type="text" name="class" ng-model="studentController.student.class"/>
    <input type="submit" value="Submit"/>
</form>


在控制器中创建一个函数submitClick()。

答案 2 :(得分:0)

你试图直接调用工厂的方法......而不是从你注册的控制器中调用..这将无法工作并且违反了角度js概念..所以定义函数进入控制器然后尝试调用它如果可以的话,请提供一名傻瓜或jsfiddle ..这对我们来说是有意义的

答案 3 :(得分:0)

试试这个

app.controller('studentController',[studentController]);
function studentController(Student){
    var student = new Student();
    student.new();
    console.log(student);
};