#javascript #angularjs
Вопрос:
Вот фрагмент кода cshtml:
lt;divgt; lt;button type="button" ng-click="recalcButton()"gt;Recalc Buttonlt;/buttongt; lt;/divgt; lt;div ng-controller="appealPartialController"gt; lt;div ng-include="'/Partials/appealsPartial.html'"gt;lt;/divgt; lt;/divgt;
При нажатии кнопки «Пересчет» я хочу перезагрузить данные в appealPartialController. Любая документация или примеры кода JS будут высоко оценены!
Ответ №1:
Итак, после долгих поисков в Google и хорошей идеи, я нашел решение, использующее встроенный в $scope AngularJS и вызывающее функцию загрузки от родителя.
$scope.$childHead.$nextSibling.loadAppealModel($scope.claimID);
Ответ №2:
Вы можете использовать общий параметр. Прежде всего, вы создаете такую услугу, как эта:
import { Injectable, EventEmitter } from '@angular/core'; import { Subscription } from 'rxjs/internal/Subscription'; @Injectable({ providedIn: 'root' }) export class SharedParamsService { invokeFirstComponentFunction = new EventEmitter(); subsVar: Subscription; constructor() { } onUpdateEnv(key, val) { var toEmit = [key, val] this.invokeFirstComponentFunction.emit(toEmit); } }
Теперь вы можете выдавать переменную при нажатии кнопки, поэтому в вашем компоненте после импорта SharedParamsService и объявления в вашем конструкторе частных sharedParams: SharedParamsService:
recalcButton(){ this.sharedParams.onUpdateEnv("btn", this.jobObj.name); }
Наконец, в компоненте, который вы хотите перезагрузить после импорта SharedParamsService и объявления в вашем конструкторе private sharedParams: SharedParamsService:
this.sharedParams.subsVar = this.sharedParams. invokeFirstComponentFunction.subscribe((emitted) =gt; { if (emitted[0] == "btn") { this.ngOnInit(); } });
конечно, вы можете избежать использования ключа, если у вас есть только эта кнопка для проверки, но, используя этот способ, вы можете подписаться на несколько переключателей кнопок или других переменных.
Комментарии:
1. Rmixion использует AngularJS, это угловые, они несовместимы.
2. Это правильно. В настоящее время я использую AngularJS.