有什么不同,它的优点和缺点

在View中将范围变量作为参数传递:

<form ng-submit="login(credentials)">

    <input type="text"     ng-model="credentials.username">
    <input type="password" ng-model="credentials.password">

</form>

var LoginController = function($scope) {

    var login = function(credentials) {

    };

    $scope.credentials = {
        username: '',
        password: ''
    };

    $scope.login = login;
}


或直接在Controller中使用范围变量:

<form ng-submit="login()"> <!-- no argument -->

    <input type="text"     ng-model="credentials.username">
    <input type="password" ng-model="credentials.password">

</form>

var LoginController = function($scope) {

    var login = function() {
        // $scope.credentials
    };

    $scope.credentials = {
        username: '',
        password: ''
    };

    $scope.login = login;
}

最佳答案

在那种情况下没有,因为它只是一个对象,所以我在anguar中并没有很多经验,但是我注意到通常在将ng-repeat与ajax调用一起使用时会传递参数,以便让角度知道该对象将执行您的功能。

就像是:

var LoginController = function($scope, $resource) {

$scope.credentials = $resource('/api/credentials')

$scope.login = function(credential) {
    alert(credential.name)
};;
}


然后你的HTML:

<table>
    <tr ng-repeat="credential in credentials">
        <td>credential.name</td>
        <td ng-click="login(credential)"></td>
    </tr>
</table>

关于javascript - AngularJS:将范围变量作为 View 中的参数传递并直接在 Controller 中使用有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23379257/

10-12 13:42