これは私のコードの一部です。何らかの理由でvm.printを自分の応答に割り当てることはできません。しかし、私はconsole.log()応答をコンソールに表示されます。助けてください。私はvm.printをapp.model.predict(){}関数の外にある任意の文字列に割り当てることができますが、関数内に割り当てると、ビューには表示されませんが、コンソールにしか表示されません。私のapiリクエストの結果をAngularJSのビューに割り当てることができません
<main class="app container" ng-controller="webcamController as vm">
<div class="row">
<div class="col-md-12" style="text-align: center">
<ng-webcam config="vm.config"
on-error="vm.onError(err)"
on-load="vm.onLoad()"
on-live="vm.onLive()"
on-capture-progress="vm.onCaptureProgress(src, progress)"
on-capture-complete="vm.onCaptureComplete(src)"></ng-webcam>
</div>
<div class="col-md-12">
<p id="progress">Progress: {{vm.progress}}%</p>
</div>
<div class="col-md-12 buttons" ng-if="vm.showButtons">
<button class="btn btn-primary" type="button" ng-disabled="!vm.captureButtonEnable" ng-click="vm.capture()">Capture</button>
<button class="btn btn-primary" type="button" ng-click="vm.off()">Camera off</button>
<button class="btn btn-primary" type="button" ng-click="vm.on()">Camera On</button>
</div>
</div>
<div id="result" class="row"></div>
<!-- Displays analysis -->
<!--<div ng-repeat="x in analysis">
<h3>Example heading <span class="label label-default">{{x.name}}</span></h3>
</div>-->
<div class="text-center">{{vm.print}}</div>
</main>
<script>
vm.test(src);
vm.test = function(src) {
//converts to string
var uri = src.toString();
//String manipulation
uri = uri.slice(23, uri.length);
var app = new Clarifai.App(
'kS3D7ofjZQYiyr_7uET1IemaxIzmnmK3vbX4Vhwt',
'lvhKWZx9bMY1L0OMVmo9bMr9A9_PyCRgmP2FGvEJ'
);
//This message will show up
vm.print = "Default message";
// predict the contents of an image by passing in a url
app.models.predict(Clarifai.GENERAL_MODEL, {base64: uri}).then(
function(response) {
//str returns a string
var str = response.request.response;
//converting string to json
var json = JSON.parse(str);
//returns result
console.log(json.outputs[0].data.concepts[0].name);
//this does not show up in the view
vm.print = json.outputs[0].data.concepts[0].name;
},
function(err) {
console.error(err);
vm.print = "Opps, something went wrong :( " + err;
}
);
};
</script>
これは私のコードの一部です。コンソールでは実行されません。私はanglejsとclarifai apiにもっと精通している構文を見るために誰かに尋ねるだけです。ありがとう。
、私は問題があなたのコードは、コントローラのスコープで実行されていないことだと思います。 – sheppe