Что такое @id как передано $resource?


$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}})

что такое @id?

на $ resource doc page кто-то говорит это ниже, но я все еще не понимаю.

Если значение параметра имеет префикс @ , то значение этого параметр извлекается из объекта данных (полезно для не получить оперативный.)"Объект данных здесь относится к postDataобъект, если используется действие "не получить класс" или сам экземпляр, если не получить используется действие экземпляра.

2 54

2 ответа:

если я понимаю это правильно, а я не могу, параметр {id: @id} является иллюстрацией другого способа предоставления переменной url с куском данных.

учитывая этот метод:

var myResource = $resource("/posts/:theName", 
                           {theName: '@petName'},
                           {enter : {
                                      method: "POST", 
                                      isArray: false
                                     }
                            });

если у меня есть атрибут "petName" в данных, которые я публикую, значение этого атрибута будет помещено в :theName переменная в моем url. Представьте, что после данных {"petType": "cat", "petName": "Spot"}, url будет читать "/posts/Spot". На мой взгляд,@ означает "атрибут" объекта будьте на связи.

забрать @ из этого значения, и переменная url будет напрямую ссылаться на значение в этом параметре ресурса:

{theName: 'petName'} //no "@"
// url output ---->   '/posts/petName'

.

вот цепочка ссылок:

//url var--> //$resource param {..}  --->//Object to be posted
:theName---> {theName ----> @petName ---> {petName---> "Spot"

потребовалось всего 5 шагов, чтобы получить "пятно" в url!

.

пример экземпляра ресурса, используя приведенный выше пример:

var postData = new myResource();
    postData.petType = "cat";
    postData.petName = "Spot";
    postData.$enter({}, function(data){
        $scope.data = data;
    })
    // url to post to will be '/posts/Spot', postData object will be 
    //  {"petType":"cat", "petName:"Spot"}

на стороне Примечание, документы могут быть очень запутанными. Вы вы когда-нибудь проходили сложный курс, и профессор был блестящим человеком, который едва говорил на вашем языке? Ага.

var myResource = $resource("/entries/:theName", 
                           {theName: '@petName'},
                           {update : {
                                      method: "PUT", 
                                      isArray: false
                                     }
                            });