2015-11-02 8 views
0

Вид:Передача скрытое значение углового

<ul ng-repeat="x in posts.post"> 
     {{x.name}} {{x._id}} {{x.post}} {{x.user_id}} 
     <br> 
     <ul ng-repeat="y in x.comment"> 
     {{y.comment}} 
     </ul> 
     <input type="text" style="display: none;" ng-model='new_comment.userId' value={{users2.id}} name="userId" > 
     <input type="text" style="display: none;" ng-model='new_comment.name' value={{users2.name}} name="userName" > 
     <textarea ng-model='new_comment.comment' name="comment" rows="4" cols="50"> 
     </textarea> 
     <br> 
     <input type="submit" value="Post Comment!" ng-click="addComment(x._id, new_comment)"> 
    </ul> 

контроллер:

UserFactory.getUser(function (data) { 
    $scope.users2 = data; 
}); 

Factory:

factory.getUser = function(callback) { 
    $http.get("/user").success(function(output) { 
     users2 = output; 
     callback(users2); 
    }); 
}; 

Я пытаюсь передать скрытые значения users2.id и потребляющие2. имя от контроллера/фабрики в форму. Я попробовал ng-init, ng-value, а также тип ввода = «hidden», но никто не работает.

Так это то, что я сделал, чтобы получить его работу:

Вид:

<form> 

    <textarea ng-model='new_comment.comment' name="comment" rows="4" cols="50"> 
    </textarea> 

    <br> 
    <input type="submit" value="Post Comment!" ng-click="addComment(x._id, new_comment, users2.name, users2._id)"> 
    </form> 

Контроллер:

$scope.addComment = function(id, comment, userName, userId) { 

var commentValue = comment.comment; 

var newComment = {comment: commentValue, name: userName, userId: userId}; 

postFactory.addComment(id, newComment, function() { 

    postFactory.getComment(function (data) { 
     $scope.comments = data; 
    }); 

    $scope.new_comment = {}; 
}); 
}; 
+0

$ scope.users2 является работая в данный момент. Когда я показываю console.log (данные) в контроллере. Проблема заключается в том, что данные доступны в форме и передаются обратно контроллеру. –

ответ

0

ли что-то вроде этого, вернуть обещание.

factory.getUser = function(callback) { 
    return $http.get("/user") 
}; 

Контроллер:

UserFactory.getUser().success(function(output) { 
    $scope.users2 = output.data; 
}); 
1

Попробуйте

<input type="hidden" ng-model='new_comment.userId' value="{{users2.id}}" name="userId" > 

И пока вы меняете вещи

UserFactory.getUser 
.then(function (data) { 
    $scope.users2 = data; 
}); 

с

factory.getUser = function() { 
    return $http.get("/user"); 
}; 

в $ HTTP возвращает обещание

1

двухстороннее связывание не будет работать с hidden элементом, поэтому я хотел бы использовать ng-value, чтобы установить значение type="hidden" элемента

<input type="hidden" ng-value='new_comment.userId' name="userId"/> 
<input type="hidden" ng-value='new_comment.name' name="userName"/>